【发布时间】:2014-09-01 19:27:11
【问题描述】:
我有一个 QDialog 子类,其中包含我的应用程序的一些选项。一些选项是核心的,另一些是高级的,所以我决定将它们放入单独的可检查 QGroupBox 中。
当用户选中高级选项框时,我希望我的对话框垂直缩小,但我找不到正确执行此操作的方法 - 对话框大小保持完全相同
我将对话框的大小策略设置为 Expanding,尝试调用 adjustSize() 并尝试调用 resize() 方法 - 没有任何帮助。我无法以编程方式将对话框的大小调整为小于当前大小(它只能变大)。同时,可以手动调整它的大小。
有人可以帮帮我吗?
【问题讨论】:
-
当您选中/取消选中它时,您是否隐藏/显示组框内的任何小部件?
-
也许您需要隐藏目前不需要的小部件并在展开对话框时显示它们?您可以查看 Qt 示例中的“Dynamic Layouts Example”。
-
adjustSize()应该可以完成这项工作。您如何隐藏这些额外的小部件以及如何恢复它们? -
@Googie,是的,确切地说,我已经将 GroupBox clicked() 信号与我自己的插槽连接起来,并根据 GroupBox 的 isChecked() 在其中隐藏/显示小部件 方法。
-
您需要手动调整大小吗?如果没有,您可以将 layout()->setSizeConstraint(QLayout::SetFixedSize); 添加到对话框构造函数中,然后布局负责在显示或隐藏小部件时自动调整大小。跨度>
标签: qt user-interface resize qdialog qsizepolicy