我有一个带有几个小部件的 QMainWIdow,其中一个是 QTableView。
主窗口可调整大小。
如何自动调整窗口内容、字体和所有内容的大小,即当窗口调整大小时,其内容也应该自动调整大小?
我会很感激帮助,谢谢。
我有一个带有几个小部件的 QMainWIdow,其中一个是 QTableView。
主窗口可调整大小。
如何自动调整窗口内容、字体和所有内容的大小,即当窗口调整大小时,其内容也应该自动调整大小?
我会很感激帮助,谢谢。
您应该将所有小部件放入布局中,当用户对 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
}
}