PyQt4 Mdi не изменяет размер

Вопрос:

В следующем примере, когда вы нажимаете кнопку, вся форма перестраивается, добавляя новую метку каждый раз. В конце появляется запрос на изменение размера, который не работает. Во время отладки я подтвердил, что 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_())

Оцените статью
TechArks.Ru
Добавить комментарий