如何根据其中一个孩子的文本长度自动调整QDialog的大小?

yan*_*nce 7 qt nokia qdialog

我有一个QDialog与我合作的人.它有点像一个QMessageBox.我注意到QMessageBox(的标签大小)的大小取决于显示的消息的大小.

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

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

Pat*_*ola 14

自动解决方案

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

手动解决方案

QWidget班有一个方法adjustSize是调整QWidget的,以适应其内容.只要在设置完所有孩子后调用它.

  • 手动解决方案在我的情况下不起作用:我有一个带有QVBoxLayout和QTableBox的QDialog和带有2个按钮的QHBoxLayout的QDialog,我已将策略设置为Expanding,并且在对话框上调用AdjustSize完全不起作用(可见) (2认同)