【问题标题】:Resize QDialog at a runtime在运行时调整 QDialog 的大小
【发布时间】: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


【解决方案1】:

如果不需要手动调整大小,可以添加

layout()->setSizeConstraint(QLayout::SetFixedSize);

到对话框构造函数,然后布局负责在显示或隐藏小部件时自动调整大小。

【讨论】:

  • 这样可以省去管理 ui 大小的大量麻烦,谢谢。
猜你喜欢
  • 1970-01-01
  • 2017-03-24
  • 2011-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-16
  • 2011-01-30
  • 2014-05-01
相关资源
最近更新 更多