问题:如何在调整centralwidget的大小时自动调整mainWindow的大小?

Mat*_*Mat 7 c++ opengl user-interface qt

我想让我的CentralWidget有一定的规模.我需要做什么才能让我的mainWindow沿着它的中央窗口小部件调整大小?这里的代码不起作用:

int main (int argc, char **argv) {
    QApplication app(argc, argv);

    QGLFormat glFormat;
    glFormat.setVersion(4,2);
    glFormat.setProfile( QGLFormat::CompatibilityProfile);

    QGLWidget* render_qglwidget = new MyWidget(glFormat);

    QGLContext* glContext = (QGLContext *) render_qglwidget->context();
    glContext->makeCurrent();


    QMainWindow* mainWindow = new MyMainWindow();
    render_qglwidget->resize(720, 486);
    mainWindow->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding));
    mainWindow->setCentralWidget(render_qglwidget);

    render_qglwidget->resize(720, 486);

    mainWindow->show();

    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

打开的窗口非常小.

我可以使用设置主窗口的大小

 mainWindow->resize(720, 486);
Run Code Online (Sandbox Code Playgroud)

而且centralwidget也会改变它的大小.但是中央小部件会略微被压扁,因为mainWindow的工具栏也位于那些486像素内.

如何让mainWindow自动调整大小?

NFR*_*RCR 0

设置中央小部件的大小。然后获取主窗口的大小提示并将其设置为其大小。

(sizeHint()、setFixedSize())。