我有一个QDialog
我正在使用的。它有点像QMessageBox
. 我注意到QMessageBox
(及其标签的大小)的大小取决于显示的消息的大小。
如何使我的QDialog
调整大小自动像 a 一样QMessageBox
?目前我的QDialog
包含一个按钮框和一个标签,并且QDialog
是垂直布局。
(我知道我可以直接使用消息框,但最终我会有更复杂的对话框。)
自动解决方案:
使用布局并将大小策略设置为QSizePolicy::Expanding
. 在 QtDesigner 中,一旦您的所有孩子都放在 QDialog 上,然后单击下一个布局的“调整大小”按钮。您的 QDialog 将在运行时自动调整大小。
手动解决方案:
该类QWidget
有一个方法adjustSize
可以调整 QWidget 的大小以适应其内容。当所有孩子都设置好时调用它。
将您的对话框设置为扩展且非常小。然后,请务必在显示对话框之前设置您的消息。显示时,它将尝试根据其包含的对象的大小找到其合适的大小。(这是递归发生的,所以如果对话框不是您显示消息的标签的直接父级,请确保标签和对话框之间的所有内容都设置为使用布局。)
提示:如果您在隐藏对话框时尝试使用“adjustSize()”函数,它可能无法正常工作。最好在“show()”函数之后使用它。