my-QT专栏

QT的splitter使用布局中左侧高度不变保持右侧为矩形且剧中

2021-06-23  本文已影响0人  c之气三段

https://blog.csdn.net/qq_40732350/article/details/86704640
步骤:

image.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;
}
上一篇 下一篇

猜你喜欢

热点阅读