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

Pin*_*ngk 2 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()
Run Code Online (Sandbox Code Playgroud)

作为图片参考,标记为 Rotascript 的窗口大小为 360x、370y。

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

提前致谢。

屏幕为 27 英寸 1080p 显示屏

Lor*_*sum 5

你没有做错任何事。QMessageBox众所周知,调整大小非常困难。

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

  1. 与换行符一起使用setText()而不是setInformativeText()

    消息框将根据该setText()方法设置的文本调整大小。这很hacky,但你可以简单地在 中包含一堆空格setText()

  2. 尝试覆盖的布局QMessageBox

    这包括摆弄setFixedSize或覆盖小部件的event方法。这是相关 SO 帖子中的一个很好的例子

  3. 重新实现QMessageBox

    的一个基本属性QMessageBox是它不会调整大小。因此,通过向后逻辑,如果您想要一个可调整大小的消息框,那么您实际上不需要消息框。然而,QMessageBox继承自QDialog. 您也许能够通过在继承链中上升一个级别并重新实现您想要的QDialog.

以下资源为我的回应提供了信息: