PyQt4 Mdi子窗口没有正确调整大小

时间:2014-07-18 16:53:33

标签: python-3.x pyqt4

在以下示例中,单击按钮时,将重建整个表单,每次都添加新标签。最后是一个看起来不起作用的调整大小调用。在调试时,我验证了sizeHint()正在返回正确的维度,并且内部小部件认为它是正确的大小,但绘制的内容不正确。我该怎么做才能强制MDI窗口正确调整大小?另外值得注意的是,如果尺寸不正确,如果手动开始调整大小,它会突然缩小到合适的大小。

import sys
import os

from PyQt4.QtCore import *
from PyQt4.QtGui import *
import PyQt4.Qt

class MdiWindow(QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.count = 0
        self.buildWindow()

    def buildWindow(self):
        main = QVBoxLayout()

        button = QPushButton('Change Count')
        button.clicked.connect(self.changeCount)
        main.addWidget(button)

        for i in range(self.count):
            main.addWidget(QLabel(str(i)))

        widget = QWidget()
        widget.setLayout(main)
        self.setCentralWidget(widget)

        self.resize(main.sizeHint())

    def changeCount(self, event):
        self.count += 1
        self.buildWindow()

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Resize Test')
        self.mdiArea = QMdiArea()
        self.setCentralWidget(self.mdiArea)

        child = MdiWindow()
        self.mdiArea.addSubWindow(child)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWin = MainWindow()
    mainWin.show()
    sys.exit(app.exec_())

0 个答案:

没有答案