3

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

主窗口可调整大小。

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

我会很感激帮助,谢谢。

4

1 回答 1

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
    }
}
于 2013-01-23T16:04:38.077 回答