如何在Python 3.5,PyQt5中调整QMessageBox的大小

时间:2017-05-13 16:48:53

标签: python-3.x pyqt5

我的QMessageBox太短了。

我尝试了各种增加高度的方法,例如 resize,setMinimumHeight,setSizeIncrement + setSizeGripEnabled ,但这些尝试都不起作用。设置SizeGrip根本不允许我调整窗口的大小。

dialog = QMessageBox(self)

dialog.setWindowTitle('About this programme')
dialog.setText('Introductory text')
dialog.setDetailedText('A bunch more text')

dialog.setMinimumHeight(500)
dialog.setSizeIncrement(1, 1)
dialog.setSizeGripEnabled(True)

dialog.show()

如图所示,标有Rotascript的窗口大小为360x,370y。

我做错了什么,或者这是某种错误?

提前致谢。

Screen is a 27" 1080p display

1 个答案:

答案 0 :(得分:0)

您没有做错任何事情。最好遵循Seth Godin's advice

  

不要刮that牛!

众所周知,QMessageBox的大小很难调整。

通常,人们使用以下三种方法之一:

  1. setText()换行而不是setInformativeText()

    消息框将根据setText()方法设置的文本调整大小。这很hacky,但是您可以在setText()中加入一堆空白。

  2. 尝试覆盖QMessageBox

    的布局

    这包括摆弄setFixedSize或覆盖小部件的event方法。这是a good example from a related SO post

  3. 重新实现QMessageBox

    QMessageBox的基本属性是它不会调整大小。因此,通过倒退逻辑,if you want a message box which resizes, you actually don't want a message box。但是,QMessageBox继承自QDialog。您可以通过在继承链中上一层并从QMessageBox重新实现所需的功能来实现所需的功能。

以下资源告知了我的答复: