调整窗口大小,使主要窗口小部件具有特定大小

时间:2013-04-17 21:35:07

标签: c++ qt

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

我想有一个菜单项,它会调整应用程序的大小,使主要小部件具有特定的大小,但我还没有找到一种方法。

到目前为止,我提出的最接近的是:

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

我的想法是将主要小部件的最小大小设置为目标大小,然后让UI“缩小到适合”

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

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

1 个答案:

答案 0 :(得分:0)

如果大小也会随着增加而减少,则需要在调用adjustSize()之前在主要小部件上设置固定大小。然后,您可以立即释放约束,以允许用户从此重新调整大小。

你可以试试这个:

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

请注意,您在Primary Widget上的设置大小必须是基于其内部的有效大小。否则,在小部件上设置固定大小几乎可以在不破坏布局约束的情况下尽可能小,而不是更进一步。