我的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。
我做错了什么,还是这是某种bug?
先谢谢你。
2条答案
按热度按时间6fe3ivhb1#
你没做错什么众所周知,
QMessageBox
很难调整大小。一般来说,人们使用以下三种方法之一:
1.使用带换行符的
setText()
而不是setInformativeText()
消息框将根据
setText()
方法设置的文本调整大小。这是一个很麻烦的方法,但是你可以在setText()
中包含一堆白色。1.尝试覆盖
QMessageBox
的布局这包括修改
setFixedSize
或覆盖小部件的event
方法。这里是a good example from a related SO post。1.重新实现
QMessageBox
QMessageBox
的一个基本属性是它不会调整大小。所以,通过反向逻辑,if you want a message box which resizes, you actually don't want a message box。但是,QMessageBox
继承自QDialog
。通过在继承链中向上移动一级,并从QDialog
重新实现所需的特性,您可能能够实现您想要的功能。以下资源为我的回应提供了信息:
jfewjypa2#
在PySide6中,这对我很有效: