11

我有一个QDialog我正在使用的。它有点像QMessageBox. 我注意到QMessageBox(及其标签的大小)的大小取决于显示的消息的大小。

如何使我的QDialog调整大小自动像 a 一样QMessageBox?目前我的QDialog包含一个按钮框和一个标签,并且QDialog是垂直布局。

(我知道我可以直接使用消息框,但最终我会有更复杂的对话框。)

4

3 回答 3

21

自动解决方案:

使用布局并将大小策略设置为QSizePolicy::Expanding. 在 QtDesigner 中,一旦您的所有孩子都放在 QDialog 上,然后单击下一个布局的“调整大小”按钮。您的 QDialog 将在运行时自动调整大小。

手动解决方案:

该类QWidget有一个方法adjustSize可以调整 QWidget 的大小以适应其内容。当所有孩子都设置好时调用它。

于 2009-11-05T09:37:20.427 回答
1

将您的对话框设置为扩展且非常小。然后,请务必在显示对话框之前设置您的消息。显示时,它将尝试根据其包含的对象的大小找到其合适的大小。(这是递归发生的,所以如果对话框不是您显示消息的标签的直接父级,请确保标签和对话框之间的所有内容都设置为使用布局。)

于 2009-11-04T21:15:08.220 回答
0

提示:如果您在隐藏对话框时尝试使用“adjustSize()”函数,它可能无法正常工作。最好在“show()”函数之后使用它。

于 2020-09-02T08:52:53.260 回答