我有一个带有几个小部件的QMainWIndow,其中一个是QTableView。
Main WIndow可以调整大小。
如何自动调整窗口内容,字体和所有内容,即调整窗口大小时,其内容也应自动调整大小?
我很感激帮助,谢谢。
答案 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
}
}