我有以下问题。我有一个QmainWindow,它设置主布局和添加到该布局的小部件。 当我调整窗口小部件的大小时,QmainWindows保持相同的大小。
以下是设置: 在init上的QmainWindow:
this->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
m_mainLayout = new QVBoxLayout();
m_mainLayout->setAlignment(Qt::AlignHCenter);
m_centralWidget = new QWidget();
m_centralWidget->setLayout(m_mainLayout);
setCentralWidget(m_centralWidget);
this->setMinimumSize(800,600);
m_mainLayout->addWidget(m_GLWidget);
然后,在某些时候m_GLWidget发出信号需要调整大小.QmainWindow捕获信号并
重新调整m_GLWidget:
void MainWindow::ResizeViewportSlot(int w,int h){
m_GLWidget->setFixedSize(w,h);
m_GLWidget->updateGeometry();
this->updateGeometry();
}
答案 0 :(得分:2)
您可以在构造函数中使用resize(800, 600)
而不是setMinimumSize
来创建限制。
顺便说一下,虽然这是一个常见的功能,但resize
继承自QWidget
,许多人(包括我)无法在QMainWindow
的文档页面中找到它。
我认为你只是其中一个受害者。
感谢lpapp的评论:
“通常可以点击List of all members, including inherited members
链接以获取课程的所有成员。”