我的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。
我做错了什么,或者这是某种错误?
提前致谢。
答案 0 :(得分:0)
您没有做错任何事情。最好遵循Seth Godin's advice:
不要刮that牛!
众所周知,QMessageBox
的大小很难调整。
通常,人们使用以下三种方法之一:
将setText()
换行而不是setInformativeText()
消息框将根据setText()
方法设置的文本调整大小。这很hacky,但是您可以在setText()
中加入一堆空白。
尝试覆盖QMessageBox
这包括摆弄setFixedSize
或覆盖小部件的event
方法。这是a good example from a related SO post。
重新实现QMessageBox
QMessageBox
的基本属性是它不会调整大小。因此,通过倒退逻辑,if you want a message box which resizes, you actually don't want a message box。但是,QMessageBox
继承自QDialog
。您可以通过在继承链中上一层并从QMessageBox
重新实现所需的功能来实现所需的功能。
以下资源告知了我的答复: