我有一个QDialog
( QVBoxLayout
) ,其中包含以下小部件:QTextEdit
, QLabel
, [layout stretch]
,QPushButton
问题是我想用QTextEdit
展开,但只能在滚动条消失之前,布局拉伸应该开始展开,显示和QDialog
之间的间隙。QLabel
QPushButton
什么是明智的做法?
注意:QDialog 可调整大小,QTextEdit 具有自动换行功能。
编辑:对于 Qt4/PySide,以下应该有效
class TextEdit(qt.QTextEdit):
def __init__(self, *args, **kwargs):
qt.QTextEdit.__init__(self, *args, **kwargs)
self.document().modificationChanged.connect(self.updateMaxHeight)
def updateMaxHeight(self, *args):
self.setMaximumHeight(self.document().size().height())
def resizeEvent(self, e):
qt.QTextEdit.resizeEvent(self, e)
self.updateMaxHeight()
class MyDialog(qt.QDialog):
def __init__(self, *args, **kwargs):
qt.QDialog.__init__(self, *args, **kwargs)
self.setLayout(qt.QVBoxLayout())
self.textEdit = TextEdit('Example text')
self.layout().addWidget(self.textEdit, 1) #1 for resizable
self.layout().addWidget(qt.QLabel('Example label')
self.layout().addStretch()
self.layout().addWidget(qt.QPushButton('Example button')