1

我有一个 Qt 应用程序,它本质上是一个QMainWindow具有菜单、工具栏和主要小部件的应用程序。

我想要一个菜单​​项来调整应用程序的大小,以便主小部件具有特定的大小,但我还没有找到一种方法来做到这一点。

到目前为止,我想出的最接近的是这样的:

void on_actionSetSize_triggered() {
    ui_.primary_widget->setMinimumSize(100,200);
    adjustSize();
}

我的想法是我将主要小部件的最小尺寸设置为目标尺寸,然后要求 UI “缩小以适应”

不幸的是,这似乎充其量只是偶尔起作用,它肯定会在需要时增加尺寸,但是当我想要减小尺寸时,它通常不起作用:-/。

注意:我确实希望允许用户自由调整应用程序的大小,这只是在他们询问时。

4

1 回答 1

0

为了使大小也像增加一样减小,您需要在调用之前在主小部件上设置一个固定大小adjustSize()。然后,您可以立即释放约束以允许用户今后重新调整大小。

你可以试试这个:

ui_.primary_widget->setFixedSize(100, 200);  
adjustSize();
ui_.primary_widget->setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX);

请注意,您在 Primary Widget 上的设置大小必须是基于其内部内容的有效大小。否则,在小部件上设置 Fixed Size 只会使其尽可能小而不会破坏布局约束,而不是进一步。

于 2013-04-18T09:06:56.343 回答