erweitert Ich habe ein QDialog
(QVBoxLayout
) mit den folgenden Widgets um: QTextEdit
, QLabel
, [layout stretch]
, QPushButton
QTextEdit, bis sie vollständig sichtbar
Das Problem ist, dass ich die QTextEdit
mit den QDialog
erweitern möchte, aber nur bis die Bildlaufleiste verschwindet, woraufhin sich die Layout-Ausdehnung ausdehnen sollte, was eine Lücke zwischen der QLabel
und der QPushButton
ergibt.
Was wäre ein sinnvoller Weg?
Hinweis: Der QDialog ist in der Größe veränderbar und das QTextEdit hat das Umbrechen von Wörtern.
Edit: Für Qt4/pyside, sollte die folgende Arbeit
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')
Das wird nicht funktionieren. OP benutzt PySide (Qt4), also gibt es keine 'setSizeAdjustPolicy'. – ekhumoro