QT的splitter使用布局中左侧高度不变保持右侧为矩形且剧中
2021-06-23 本文已影响0人
c之气三段
https://blog.csdn.net/qq_40732350/article/details/86704640
步骤:
![](https://img.haomeiwen.com/i25694381/300e0961ad527244.png)
用splitter包含俩个widget,右侧窗口再嵌套一个widget(这个窗口需要提升而来,这样可以得到这个类)一直调整这个widget高度和宽度相等,且最大宽度就是高度。
void resizeEvent(QResizeEvent* event)
重写此函数
#include "MainWindow.h"
#include "ui_MainWindow.h"
#include<QResizeEvent>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->widget_2->setMaximumWidth(this->height());
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::resizeEvent(QResizeEvent* event)
{
ui->widget_2->setMaximumWidth(event->size().height());
}
#include "ShowWiget.h"
#include "ui_ShowWiget.h"
#include<QResizeEvent>
#include"TreeModel/TreeViewModel.h"
ShowWiget::ShowWiget(QWidget *parent) :
QWidget(parent),
ui(new Ui::ShowWiget)
{
ui->setupUi(this);
}
ShowWiget::~ShowWiget()
{
delete ui;
}
void ShowWiget::resizeEvent(QResizeEvent* event)
{
static bool bFirst = true;
if(!bFirst)
{
resize(this->width(),this->width());
//保证窗口在最中间
this->move(0,(event->size().height()-this->height())/2);
}
bFirst = false;
}