我有一个带有几个小部件的 QMainWIndow,其中之一是 QTableView。
主窗口可调整大小。
如何自动调整窗口内容、字体和所有内容的大小,即当调整窗口大小时,其内容也应该自动调整大小?
非常感谢您的帮助,谢谢。
您应该将所有小部件放入布局中,当用户对 QMainWindow 的大小进行任何更改时,布局会自动调整 QMainWindow 内所有小部件的大小,您可以通过 Qt Creator IDE 和编码添加布局。
更新:
如果您在 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
}
}