如何根据窗口大小调整QMainWindow的内容

时间:2013-01-21 07:15:20

标签: qt qmainwindow

我有一个带有几个小部件的QMainWIndow,其中一个是QTableView。

Main WIndow可以调整大小。

如何自动调整窗口内容,字体和所有内容,即调整窗口大小时,其内容也应自动调整大小?

我很感激帮助,谢谢。

1 个答案:

答案 0 :(得分:2)

当用户对QMainWindow的大小进行任何更改时,您应该将所有小部件放入布局,布局自动调整QMainWindow内的所有小部件,您可以通过Qt Creator IDE和Coding添加布局。

更新:

如果在Qt Creator中添加布局,布局会自动编码为moc文件,无需通过用户编码对其行为进行任何更改。

但是通过类构造函数中的编码:

QVBoxLayout *layout = new QVBoxLayout(parent);

layout->addWidget(widget1);   
layout->addWidget(widget2);   
layout->addWidget(widget3);   

this->setLayout(layout);  

但如果想要更改QLabel的字体,可以通过QMainWindow中的 resizeEvent 来完成,因此对于MainWindow的大小任何更改, resizeEvent 都会触发,因此您使用此代码:

mainwindow.h 中声明 resizeEvent

protected:
    void resizeEvent(QResizeEvent* event);
mainwindow.cpp

实施 resizeEvent

void MainWindow::resizeEvent(QResizeEvent *event)
{
    MainWindow::resizeEvent(event);
    if(this)
    {
        // QLabel process
    }
}