J'ai du mal à faire en sorte que les widgets d'un QDialog soient redimensionnés automatiquement lorsque le dialogue lui-même est redimensionné.
Dans le programme suivant, la zone de texte se redimensionne automatiquement si vous redimensionnez la fenêtre principale. Toutefois, la zone de texte à l'intérieur de la boîte de dialogue conserve la même taille lorsque la boîte de dialogue est redimensionnée.
Existe-t-il un moyen de faire en sorte que la zone de texte de la boîte de dialogue se redimensionne automatiquement ? J'ai essayé d'utiliser setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)
sur la boîte de dialogue elle-même et les deux widgets qu'elle contient, mais cela ne semble avoir aucun effet.
J'utilise Qt version 3.3.7 et PyQt version 3.5.5-29 sur openSuSE 10.2, si c'est pertinent.
import sys
from qt import *
# The numbers 1 to 1000 as a string.
NUMBERS = ("%d " * 1000) % (tuple(range(1,1001)))
# Add a textarea containing the numbers 1 to 1000 to the given
# QWidget.
def addTextArea(parent, size):
textbox = QTextEdit(parent)
textbox.setReadOnly(True)
textbox.setMinimumSize(QSize(size, size*0.75))
textbox.setText(NUMBERS)
class TestDialog(QDialog):
def __init__(self,parent=None):
QDialog.__init__(self,parent)
self.setCaption("Dialog")
everything = QVBox(self)
addTextArea(everything, 400)
everything.resize(everything.sizeHint())
class TestMainWindow(QMainWindow):
def __init__(self,parent=None):
QMainWindow.__init__(self,parent)
self.setCaption("Main Window")
everything = QVBox(self)
addTextArea(everything, 800)
button = QPushButton("Open dialog", everything)
self.connect(button, SIGNAL('clicked()'), self.openDialog)
self.setCentralWidget(everything)
self.resize(self.sizeHint())
self.dialog = TestDialog(self)
def openDialog(self):
self.dialog.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
mainwin = TestMainWindow(None)
app.setMainWidget(mainwin)
mainwin.show()
app.exec_loop()