006
006

Reputation: 1

Calling pyqt windows

I created 2 windows on QT4. In Idle i managed to show Window 1 and adding a closing action once button is clicked. I would like to call and display window 2 by clicking this button. My code is:

import os

import shlex

import sys, Tkinter

#import Converted Python UI File

from W0 import Ui_MainWindow1

If i include from W import Ui_MainWindow2 for calling my 2nd windows, it shows directly my window2 and skip window 1!!

class Main(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        # Button close the window1(would like to show window 2 instead now) .
        self.ui.pushButton.clicked.connect(self.close)

def main():
    app = QtGui.QApplication(sys.argv)
    window = Main()
    window.show()
    sys.exit(app.exec_())

main()

Upvotes: 0

Views: 236

Answers (1)

danodonovan
danodonovan

Reputation: 20353

Try this

from W0 import Ui_MainWindow1
from W import Ui_MainWindow2

class Main1(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.ui = Ui_MainWindow1()
        self.ui.setupUi(self)
        self.ui.pushButton.clicked.connect(self.close)

class Main2(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.ui = Ui_MainWindow2()
        self.ui.setupUi(self)
        self.ui.pushButton.clicked.connect(self.close)

def main():
    app = QtGui.QApplication(sys.argv)

    window1 = Main1()
    window1.show()

    window2 = Main2()
    window2.show()

    sys.exit(app.exec_())

main()

Upvotes: 0

Related Questions