调整窗口大小以适合内容

Nob*_*ody 10 qt qlayout

我有一个QGLWidget,我想调整大小到给定的分辨率(大于包含窗口).我的意图是,窗口会扩展,直到小部件适合内部,但无法找到方法.

我在调整QGLWidget的大小后尝试了几个命令,使其工作没有成功.我将在此列出结果:

  • 什么都不做:Widget重叠整个窗口.最终它将调整大小以适应较小的窗口
  • mainWindow.adjustSize():窗口小部件调整大小为(0,0)
  • mainWindow.resize(mainWindow.sizeHint()): 往上看
  • mainWindow.resize(mainWindow.minimumSizeHint()): 往上看

我也读过这个帖子,在执行mainWindow调整之前我需要运行事件循环来重新计算新的大小,所以我插入QCoreApplication::processEvents这样做,没有任何可见的效果.

那么如何通过窗口小部件调整窗口大小?

编辑

GLWidget不是窗口的唯一窗口小部件.它与分组盒一起嵌入分离器中.

phy*_*att 8

http://qt-project.org/doc/qt-4.8/qwidget.html#sizePolicy-prop

http://qt-project.org/doc/qt-4.8/qsizepolicy.html#Policy-enum

http://qt-project.org/doc/qt-4.8/qwidget.html#setFixedSize

因此,假设您将QGLWidget嵌套在QMainWindow中央窗口小部件中,则需要设置自己的窗口大小策略QGLWidget.

例如:

QGLWidget * glw; // in your header for QMainWindow
Run Code Online (Sandbox Code Playgroud)

...

// In your constructor for QMainWindow
glw = new QGLWidget;
this->setCentralWidget(glw);
glw->setFixedSize(500, 500);

this->adjustSize();
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.