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