gpt4 book ai didi

c++ - 根据子窗口小部件调整 QMainWindow 的大小?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:41:38 28 4
gpt4 key购买 nike

父子层次结构如下:mainWindow -> centralWidget -> frame -> widget。

小部件在应用程序生命周期内会调整大小,但它始终设置为固定大小。我希望 QMainWindow 基于此调整大小 - 具有显示所有小部件所需的最小大小。

为此,我目前必须这样做。

widget->setFixedSize(x, y);
frame->setFixedSize(frame->sizeHint());
centralWidget->setFixedSize(centralWidget->sizeHint());
mainWindow->setFixedSize(mainWindow->sizeHint());

如果我只调整主窗口的大小,它不能正常工作。小部件的所有父级都需要调整大小才能使其正常工作。有没有更优雅的方式?是否可以让主窗口调用调整其所有子窗口的大小?

注意:除“widget”之外的所有小部件都具有自动布局管理。所以我觉得很奇怪,他们不根据“小部件”调整自己的大小。

最佳答案

确定小部件的大小和位置是布局的工作。因此,如果您显式调整布局内的子部件的大小,则需要确保新尺寸正确地通过布局系统传递。这可以通过确保小部件的 sizeHint() 返回新大小来完成。布局计算新大小时将使用 sizeHint() 返回的值。因此,在 sizeHint() 更改后,只需调用 updateGeometry() [qt.nokia.com],它会通知布局系统小部件已更改并且可能需要更改几何图形。

另一种确保父窗口小部件根据其子窗口小部件的大小调整而调整大小的方法是调用子窗口小部件的 setFixedSize()。

有关详细信息,请检查此...

http://qt-project.org/faq/answer/how_can_i_trigger_the_parent_widget_to_resize_when_its_child_widget_is_resi

关于c++ - 根据子窗口小部件调整 QMainWindow 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9944301/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com