[ kazil @ 03.04.2009. 22:54 ] @
Ocigledno da nesto ne primecujem ili u kodu, ili u dokumentaciji. Python 2.6, PyQT 4.4.4., Windows XP SP2. Uglavnom, kada dodajem QWidget kao mdiSubWindow ne reaguje na resize() metodu; vidi se samo title bar. Kada obrisem tu liniju gde dodajem taj QWidget u QMdiArea-u, onda resize odradi normalno. Kod: Code: class MainGui(): def __init__(self, parent=None): self.parent = parent parent.resize(1000, 600) parent.setWindowTitle("Main") parent.mdiArea = QMdiArea() parent.setCentralWidget(parent.mdiArea) class ChildGui(): def __init__(self, parent): self.parent = parent self.parent.setAttribute(Qt.WA_DeleteOnClose) self.parent.resize(200, 200) self.parent.setWindowTitle("Child") self.lineEdit = QLineEdit(self.parent) class Child(QWidget): def __init__(self, parent): QWidget.__init__(self) self.parent = parent # sledeci red ako se obrise, radi kao sto bi trebalo self.parent.mdiArea.addSubWindow(self) self.gui = ChildGui(self) class Main(QMainWindow): def __init__(self): QMainWindow.__init__(self) self.gui = MainGui(self) # ovo inace pozivam preko menija, al' uglavnom je svejedno. self.newChildAction() def newChildAction(self): c = Child(self) c.show() if __name__ == "__main__": app = QApplication(sys.argv) m = Main() m.show() sys.exit(app.exec_()) Main se resizuje kako treba, na 1000x600, ali Child nece. Sta mi je promaklo? :( Hvala :) |