PyQt: получение виджетов для автоматического изменения размера в QDialog

У меня возникают трудности с автоматическим изменением размера виджетов в QDialog при изменении размера самого диалога.

В следующей программе текстовая область изменяет размеры автоматически, если вы изменяете размер главного окна. Тем не менее, текстовая область в диалоге остается того же размера при изменении размера диалога.

Есть ли способ сделать так, чтобы текстовая область в диалоге изменяла размер автоматически? Я пытался использоватьsetSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored) на самом диалоге и двух виджетах внутри, но это, кажется, не имеет никакого эффекта.

Я использую Qt версии 3.3.7 и PyQt версии 3.5.5-29 в openSuSE 10.2, если это актуально.

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()

Ответы на вопрос(1)

Ваш ответ на вопрос