Search code examples
pythonpython-2.7pyqtpyqt4

After calling a second Window in PyQt4 the buttons in the second window not working


So Basically i'm trying to design my program using PyQt4 which have more than one window, and everytime i call a window by clicking on buttons the buttons in the new window ain't working. Any help?

from PyQt4 import QtCore, QtGui
import cv2
import pyzbar.pyzbar as pyzbar
import numpy as np
import time


try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_UberMap(object):
    def setupUi(self, UberMap):
        UberMap.setObjectName(_fromUtf8("UberMap"))
        UberMap.resize(446, 825)
        UberMap.setMouseTracking(False)
        UberMap.setAutoFillBackground(False)
        UberMap.setStyleSheet(_fromUtf8("background-image: url(Uber.png);"))
        UberMap.setAnimated(False)
        self.centralwidget = QtGui.QWidget(UberMap)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.pushButton = QtGui.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(20, 723, 411, 41))
        self.pushButton.setAutoFillBackground(False)
        self.pushButton.setStyleSheet(_fromUtf8("background-image: url(button.png);"))
        self.pushButton.setText(_fromUtf8(""))
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.pushButton.clicked.connect(self.close_application)
        self.pushButton_2 = QtGui.QPushButton(self.centralwidget)
        self.pushButton_2.setEnabled(True)
        self.pushButton_2.setGeometry(QtCore.QRect(19, 675, 206, 49))
        font = QtGui.QFont()
        font.setFamily(_fromUtf8("Times New Roman"))
        font.setPointSize(10)
        font.setItalic(True)
        self.pushButton_2.setFont(font)
        self.pushButton_2.setMouseTracking(True)
        self.pushButton_2.setAutoFillBackground(False)
        self.pushButton_2.setStyleSheet(_fromUtf8("background-image: url(Qr.png);"))
        self.pushButton_2.setText(_fromUtf8(""))
        self.pushButton_2.setAutoDefault(False)
        self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
        self.pushButton_2.clicked.connect(self.openQRreaderWindow)
        self.pushButton_3 = QtGui.QPushButton(self.centralwidget)
        self.pushButton_3.setGeometry(QtCore.QRect(225, 675, 206, 49))
        self.pushButton_3.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
        self.pushButton_3.setStyleSheet(_fromUtf8("background-image: url(Uberlogo.png);"))
        self.pushButton_3.setText(_fromUtf8(""))
        self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
        UberMap.setCentralWidget(self.centralwidget)

        self.retranslateUi(UberMap)
        QtCore.QMetaObject.connectSlotsByName(UberMap)

    def retranslateUi(self, UberMap):
        uber.setWindowTitle(_translate("Uber", "Uber", None))
        uber.setWindowIcon(QtGui.QIcon('KLM.png'))
        self.pushButton_2.setToolTip(_translate("UberMap", "<html><head/><body><p>Click here to find your way in Schiphol to your gate</p></body></html>", None))
        self.pushButton_3.setToolTip(_translate("UberMap", "<html><head/><body><p>Click here to find a transportation</p></body></html>", None))


    def close_application(self):
        sys.exit()

    def openQRreaderWindow(self):
        uber.hide()
        QRreader.show()


class Ui_QRreader(object):

    def setupUi1(self, QRreader):
        self.startCapture()
        self.image = None
        QRreader.setObjectName(_fromUtf8("QRreader"))
        QRreader.resize(446, 825)
        QRreader.setAutoFillBackground(False)
        QRreader.setStyleSheet(_fromUtf8("background-image: url(Qrreader.png);"))
        self.centralwidget = QtGui.QWidget(QRreader)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.pushButton5 = QtGui.QPushButton(self.centralwidget)
        self.pushButton5.setGeometry(QtCore.QRect(20, 723, 411, 41))
        self.pushButton5.setAutoFillBackground(False)
        self.pushButton5.setStyleSheet(_fromUtf8("background-image: url(button.png);"))
        self.pushButton5.setText(_fromUtf8(""))
        self.pushButton5.setObjectName(_fromUtf8("pushButton_5"))
        self.pushButton5.clicked.connect(self.close_application)
        self.pushButton_6 = QtGui.QPushButton(self.centralwidget)
        self.pushButton_6.setEnabled(True)
        self.pushButton_6.setGeometry(QtCore.QRect(19, 675, 206, 49))
        self.pushButton_6.clicked.connect(self.startCapture)
        font = QtGui.QFont()
        font.setFamily(_fromUtf8("Times New Roman"))
        font.setPointSize(10)
        font.setItalic(True)
        self.pushButton_6.setFont(font)
        self.pushButton_6.setMouseTracking(True)
        self.pushButton_6.setAutoFillBackground(False)
        self.pushButton_6.setStyleSheet(_fromUtf8("background-image: url(Qr.png);"))
        self.pushButton_6.setText(_fromUtf8(""))
        self.pushButton_6.setAutoDefault(False)
        self.pushButton_6.setObjectName(_fromUtf8("pushButton_6"))
        self.pushButton_7 = QtGui.QPushButton(self.centralwidget)
        self.pushButton_7.setGeometry(QtCore.QRect(225, 675, 206, 49))
        self.pushButton_7.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
        self.pushButton_7.setStyleSheet(_fromUtf8("background-image: url(Uberlogo.png);"))
        self.pushButton_7.setText(_fromUtf8(""))
        self.pushButton_7.setObjectName(_fromUtf8("pushButton_7"))
        self.pushButton_7.clicked.connect(self.openUberWindow)
        self.label = QtGui.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(18, 182, 413, 491))
        self.label.setStyleSheet(_fromUtf8("background-image: url(cam.png);"))
        self.label.setObjectName(_fromUtf8("label"))
        QRreader.setCentralWidget(self.centralwidget)

        self.retranslateUi(QRreader)
        QtCore.QMetaObject.connectSlotsByName(QRreader)

    def close_application(self):
        sys.exit()
    def startCapture(self):
        self.capture = cv2.VideoCapture(0)
        self.capture.set(cv2.CAP_PROP_FRAME_HEIGHT,491)
        self.capture.set(cv2.CAP_PROP_FRAME_WIDTH, 413)
        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.update_frame)
        self.timer.start(5)


    def update_frame(self):
        ret, self.image = self.capture.read()
        self.image = cv2.flip(self.image,1)
        self.displayImage(self.image,1)

    def displayImage(self,img,window =1):
        qformat= QtGui.QImage.Format_Indexed8
        if (len(img.shape)==3):
            qformat = QtGui.QImage.Format_RGB888
        outImage = QtGui.QImage(img,img.shape[1],img.shape[0],img.strides[0],qformat)
        outImage = outImage.rgbSwapped()
        if window ==1:
            self.label.setPixmap(QtGui.QPixmap.fromImage(outImage))
            self.label.setScaledContents(True)
        decodedObjects = self.decode(img)
        self.display(img, decodedObjects)
    def decode(self, frame):
        # Find barcodes and QR codes
        decodedObjects = pyzbar.decode(frame)

        # Print results
        for obj in decodedObjects:
            if "door" in obj.data:
                QRreader.hide()
                uber.hide()
                self.openMap()


        return decodedObjects

    # Display barcode and QR code location
    def display(self, frame, decodedObjects):
        # Loop over all decoded objects
        for decodedObject in decodedObjects:
            points = decodedObject.polygon

            # If the points do not form a quad, find convex hull
            if len(points) > 4:
                hull = cv2.convexHull(np.array([point for point in points], dtype=np.float32))
                hull = list(map(tuple, np.squeeze(hull)))
            else:
                hull = points

            # Number of points in the convex hull
            n = len(hull)

            # Draw the convext hull
            for j in range(0, n):
                cv2.line(frame, hull[j], hull[(j + 1) % n], (255, 0, 0), 3)
    def openUberWindow(self):
        QRreader.hide()
        uber.show()

    def openMap(self):
        time.sleep(2)
        QRreader.show()
        self.map4 = QtGui.QMainWindow()
        ui1 = Ui_map4()
        ui1.setupUi(self.map4)
        self.map4.show()
        QtCore.QTimer.singleShot(40000, self.map4.close)
        self.map3 = QtGui.QMainWindow()
        ui1 = Ui_map3()
        ui1.setupUi(self.map3)
        self.map3.show()
        QtCore.QTimer.singleShot(30000, self.map3.close)
        self.map2 = QtGui.QMainWindow()
        ui1 = Ui_map2()
        ui1.setupUi(self.map2)
        self.map2.show()
        QtCore.QTimer.singleShot(20000, self.map2.close)
        self.map = QtGui.QMainWindow()
        ui1 = Ui_map()
        ui1.setupUi(self.map)
        self.map.show()
        QtCore.QTimer.singleShot(10000, self.map.close)

    def retranslateUi(self, QRreader):
        QRreader.setWindowTitle(_translate("QRreader", "QRreader", None))
        QRreader.setWindowIcon(QtGui.QIcon('KLM.png'))
        self.pushButton_6.setToolTip(_translate("QRreader", "<html><head/><body><p>Click here to find your way in Schiphol to your gate</p></body></html>", None))
        self.pushButton_7.setToolTip(_translate("QRreader", "<html><head/><body><p>Click here to find a transportation</p></body></html>", None))

class Ui_good(object):
    def setupUi(self, good):
        good.setObjectName(_fromUtf8("good"))
        good.resize(446, 825)
        good.setStyleSheet(_fromUtf8("background-image: url(good.png);"))
        self.centralwidget = QtGui.QWidget(good)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        good.setCentralWidget(self.centralwidget)

        self.retranslateUi(good)
        QtCore.QMetaObject.connectSlotsByName(good)

    def retranslateUi(self, good):
        good.setWindowTitle(_translate("Welcome", "Welcome", None))
        good.setWindowIcon(QtGui.QIcon('KLM.png'))


class Ui_map(object):
    def setupUi(self, map):
        map.setObjectName(_fromUtf8("map"))
        map.resize(446, 825)
        map.setStyleSheet(_fromUtf8("background-image: url(1.png);"))
        self.centralwidget = QtGui.QWidget(map)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        map.setCentralWidget(self.centralwidget)

        self.retranslateUi(map)
        QtCore.QMetaObject.connectSlotsByName(map)

    def retranslateUi(self, map):
        map.setWindowTitle(_translate("map", "MainWindow", None))

class Ui_map2(object):
    def setupUi(self, map2):
        map2.setObjectName(_fromUtf8("map"))
        map2.resize(446, 825)
        map2.setStyleSheet(_fromUtf8("background-image: url(2.png);"))
        self.centralwidget = QtGui.QWidget(map2)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        map2.setCentralWidget(self.centralwidget)

        self.retranslateUi(map2)
        QtCore.QMetaObject.connectSlotsByName(map2)

    def retranslateUi(self, map2):
        map2.setWindowTitle(_translate("map", "MainWindow", None))

class Ui_map3(object):
    def setupUi(self, map3):
        map3.setObjectName(_fromUtf8("map"))
        map3.resize(446, 825)
        map3.setStyleSheet(_fromUtf8("background-image: url(3.png);"))
        self.centralwidget = QtGui.QWidget(map3)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        map3.setCentralWidget(self.centralwidget)

        self.retranslateUi(map3)
        QtCore.QMetaObject.connectSlotsByName(map3)

    def retranslateUi(self, map3):
        map3.setWindowTitle(_translate("map", "MainWindow", None))

class Ui_map4(object):
    def setupUi(self, map4):
        map4.setObjectName(_fromUtf8("map"))
        map4.resize(446, 825)
        map4.setStyleSheet(_fromUtf8("background-image: url(4.png);"))
        self.centralwidget = QtGui.QWidget(map4)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        map4.setCentralWidget(self.centralwidget)

        self.retranslateUi(map4)
        QtCore.QMetaObject.connectSlotsByName(map4)

    def retranslateUi(self, map):
        map.setWindowTitle(_translate("map", "MainWindow", None))



if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    uber = QtGui.QMainWindow()
    ui = Ui_UberMap()
    ui.setupUi(uber)
    uber.show()
    #uber.hide()
    QRreader = QtGui.QMainWindow()
    ui1 = Ui_QRreader()
    ui1.setupUi1(QRreader)
    QRreader.show()
    QRreader.hide()
    good = QtGui.QMainWindow()
    ui = Ui_good()
    ui.setupUi(good)
    good.show()
    QtCore.QTimer.singleShot(3000, good.close)
    sys.exit(app.exec_())

Solution

  • First of all PyQt recommends not modifying the .py file generated by pyuic, for more information read this. What you must do is create a class that inherits the appropriate widget and use the interface that Qt Designer provides.

    On the other hand, do not use sleep because it blocks the GUI.

    And last but not least you must use the signals to notify other widgets of changes instead of accessing the objects of other classes avoiding the coupling of classes.

    Considering the above, we obtain the following:

    from PyQt4 import QtCore, QtGui
    import cv2
    import pyzbar.pyzbar as pyzbar
    import numpy as np
    
    try:
        _fromUtf8 = QtCore.QString.fromUtf8
    except AttributeError:
        def _fromUtf8(s):
            return s
    
    try:
        _encoding = QtGui.QApplication.UnicodeUTF8
        def _translate(context, text, disambig):
            return QtGui.QApplication.translate(context, text, disambig, _encoding)
    except AttributeError:
        def _translate(context, text, disambig):
            return QtGui.QApplication.translate(context, text, disambig)
    
    class Ui_UberMap(object):
        def setupUi(self, UberMap):
            UberMap.setObjectName(_fromUtf8("UberMap"))
            UberMap.resize(446, 825)
            UberMap.setMouseTracking(False)
            UberMap.setAutoFillBackground(False)
            UberMap.setStyleSheet(_fromUtf8("background-image: url(Uber.png);"))
            UberMap.setAnimated(False)
            self.centralwidget = QtGui.QWidget(UberMap)
            self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
            self.pushButton = QtGui.QPushButton(self.centralwidget)
            self.pushButton.setGeometry(QtCore.QRect(20, 723, 411, 41))
            self.pushButton.setAutoFillBackground(False)
            self.pushButton.setStyleSheet(_fromUtf8("background-image: url(button.png);"))
            self.pushButton.setText(_fromUtf8(""))
            self.pushButton.setObjectName(_fromUtf8("pushButton"))
            self.pushButton_2 = QtGui.QPushButton(self.centralwidget)
            self.pushButton_2.setEnabled(True)
            self.pushButton_2.setGeometry(QtCore.QRect(19, 675, 206, 49))
            font = QtGui.QFont()
            font.setFamily(_fromUtf8("Times New Roman"))
            font.setPointSize(10)
            font.setItalic(True)
            self.pushButton_2.setFont(font)
            self.pushButton_2.setMouseTracking(True)
            self.pushButton_2.setAutoFillBackground(False)
            self.pushButton_2.setStyleSheet(_fromUtf8("background-image: url(Qr.png);"))
            self.pushButton_2.setText(_fromUtf8(""))
            self.pushButton_2.setAutoDefault(False)
            self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
            self.pushButton_3 = QtGui.QPushButton(self.centralwidget)
            self.pushButton_3.setGeometry(QtCore.QRect(225, 675, 206, 49))
            self.pushButton_3.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
            self.pushButton_3.setStyleSheet(_fromUtf8("background-image: url(Uberlogo.png);"))
            self.pushButton_3.setText(_fromUtf8(""))
            self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
            UberMap.setCentralWidget(self.centralwidget)
            self.retranslateUi(UberMap)
            QtCore.QMetaObject.connectSlotsByName(UberMap)
    
        def retranslateUi(self, UberMap):
            UberMap.setWindowTitle(_translate("Uber", "Uber", None))
            UberMap.setWindowIcon(QtGui.QIcon('KLM.png'))
            self.pushButton_2.setToolTip(_translate("UberMap", "<html><head/><body><p>Click here to find your way in Schiphol to your gate</p></body></html>", None))
            self.pushButton_3.setToolTip(_translate("UberMap", "<html><head/><body><p>Click here to find a transportation</p></body></html>", None))
    
    
    class UberMap(QtGui.QMainWindow, Ui_UberMap):
        openQRreaderSignal = QtCore.pyqtSignal()
    
        def __init__(self, parent=None):
            super(UberMap, self).__init__(parent)
            self.setupUi(self)
            self.pushButton_2.clicked.connect(self.openQRreaderSignal)
            self.openQRreaderSignal.connect(self.hide)
            self.pushButton.clicked.connect(self.close_application)
    
        def close_application(self):
            sys.exit()
    
    
    class Ui_QRreader(object):
        def setupUi(self, QRreader):
            QRreader.setObjectName(_fromUtf8("QRreader"))
            QRreader.resize(446, 825)
            QRreader.setAutoFillBackground(False)
            QRreader.setStyleSheet(_fromUtf8("background-image: url(Qrreader.png);"))
            self.centralwidget = QtGui.QWidget(QRreader)
            self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
            self.pushButton5 = QtGui.QPushButton(self.centralwidget)
            self.pushButton5.setGeometry(QtCore.QRect(20, 723, 411, 41))
            self.pushButton5.setAutoFillBackground(False)
            self.pushButton5.setStyleSheet(_fromUtf8("background-image: url(button.png);"))
            self.pushButton5.setText(_fromUtf8(""))
            self.pushButton5.setObjectName(_fromUtf8("pushButton_5"))
            self.pushButton_6 = QtGui.QPushButton(self.centralwidget)
            self.pushButton_6.setEnabled(True)
            self.pushButton_6.setGeometry(QtCore.QRect(19, 675, 206, 49))
            font = QtGui.QFont()
            font.setFamily(_fromUtf8("Times New Roman"))
            font.setPointSize(10)
            font.setItalic(True)
            self.pushButton_6.setFont(font)
            self.pushButton_6.setMouseTracking(True)
            self.pushButton_6.setAutoFillBackground(False)
            self.pushButton_6.setStyleSheet(_fromUtf8("background-image: url(Qr.png);"))
            self.pushButton_6.setText(_fromUtf8(""))
            self.pushButton_6.setAutoDefault(False)
            self.pushButton_6.setObjectName(_fromUtf8("pushButton_6"))
            self.pushButton_7 = QtGui.QPushButton(self.centralwidget)
            self.pushButton_7.setGeometry(QtCore.QRect(225, 675, 206, 49))
            self.pushButton_7.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
            self.pushButton_7.setStyleSheet(_fromUtf8("background-image: url(Uberlogo.png);"))
            self.pushButton_7.setText(_fromUtf8(""))
            self.pushButton_7.setObjectName(_fromUtf8("pushButton_7"))
            self.label = QtGui.QLabel(self.centralwidget)
            self.label.setGeometry(QtCore.QRect(18, 182, 413, 491))
            self.label.setStyleSheet(_fromUtf8("background-image: url(cam.png);"))
            self.label.setObjectName(_fromUtf8("label"))
            QRreader.setCentralWidget(self.centralwidget)
            self.retranslateUi(QRreader)
            QtCore.QMetaObject.connectSlotsByName(QRreader)
    
        def retranslateUi(self, QRreader):
            QRreader.setWindowTitle(_translate("QRreader", "QRreader", None))
            QRreader.setWindowIcon(QtGui.QIcon('KLM.png'))
            self.pushButton_6.setToolTip(_translate("QRreader", "<html><head/><body><p>Click here to find your way in Schiphol to your gate</p></body></html>", None))
            self.pushButton_7.setToolTip(_translate("QRreader", "<html><head/><body><p>Click here to find a transportation</p></body></html>", None))
    
    
    class QRreader(QtGui.QMainWindow, Ui_QRreader):
        openUberSignal = QtCore.pyqtSignal()
        hideUberSignal = QtCore.pyqtSignal()
    
        def __init__(self, parent=None):
            super(QRreader, self).__init__(parent)
            self.setupUi(self)
            self.pushButton5.clicked.connect(self.close_application)
            self.pushButton_7.clicked.connect(self.openUberSignal)
            self.pushButton_6.clicked.connect(self.startCapture)
            self.openUberSignal.connect(self.hide)
            self.timer = QtCore.QTimer(self)
            self.timer.timeout.connect(self.update_frame)
            # self.startCapture()
    
        def close_application(self):
            sys.exit()
    
        @QtCore.pyqtSlot()
        def startCapture(self):
            self.capture = cv2.VideoCapture(0)
            # self.capture.set(cv2.CAP_PROP_FRAME_HEIGHT,491)
            # self.capture.set(cv2.CAP_PROP_FRAME_WIDTH, 413)
            self.timer.start(5)
    
        @QtCore.pyqtSlot()
        def update_frame(self):
            ret, image = self.capture.read()
            image = cv2.flip(image, 1)
            if ret:
                self.displayImage(image)
    
        def displayImage(self, img, window =True):
            qformat= QtGui.QImage.Format_Indexed8
            if len(img.shape)==3:
    
                qformat = QtGui.QImage.Format_RGB888
    
            outImage = QtGui.QImage(img, img.shape[1],img.shape[0],img.strides[0],qformat)
            outImage = outImage.rgbSwapped()
            if window:
                self.label.setPixmap(QtGui.QPixmap.fromImage(outImage))
                self.label.setScaledContents(True)
            decodedObjects = self.decode(img)
            self.display(img, decodedObjects)
    
        def decode(self, frame):
            # Find barcodes and QR codes
            decodedObjects = pyzbar.decode(frame)
    
            # Print results
            for obj in decodedObjects:
                if "door" in obj.data:
                    self.hideUberSignal.emit()
                    self.openMap()
            return decodedObjects
    
        # Display barcode and QR code location
        def display(self, frame, decodedObjects):
            # Loop over all decoded objects
            for decodedObject in decodedObjects:
                points = decodedObject.polygon
    
                # If the points do not form a quad, find convex hull
                if len(points) > 4:
                    hull = cv2.convexHull(np.array([point for point in points], dtype=np.float32))
                    hull = list(map(tuple, np.squeeze(hull)))
                else:
                    hull = points
                # Number of points in the convex hull
                n = len(hull)
                # Draw the convext hull
                for j in range(0, n):
                    cv2.line(frame, hull[j], hull[(j + 1) % n], (255, 0, 0), 3)
    
        def openMap(self):
            loop = QtCore.QEventLoop()
            QtCore.QTimer.singleShot(2000, loop.quit)
            loop.exec_()
            self.show()
            self.map4 = Map4()
            self.map4.show()
            QtCore.QTimer.singleShot(40000, self.map4.close)
            self.map3 = Map3()
            self.map3.show()
            QtCore.QTimer.singleShot(30000, self.map3.close)
            self.map2 = Map2()
            self.map2.show()
            QtCore.QTimer.singleShot(20000, self.map2.close)
            self.map = Map()
            self.map.show()
            QtCore.QTimer.singleShot(10000, self.map.close)
    
    class Ui_good(object):
        def setupUi(self, good):
            good.setObjectName(_fromUtf8("good"))
            good.resize(446, 825)
            good.setStyleSheet(_fromUtf8("background-image: url(good.png);"))
            self.centralwidget = QtGui.QWidget(good)
            self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
            good.setCentralWidget(self.centralwidget)
            self.retranslateUi(good)
            QtCore.QMetaObject.connectSlotsByName(good)
    
        def retranslateUi(self, good):
            good.setWindowTitle(_translate("Welcome", "Welcome", None))
            good.setWindowIcon(QtGui.QIcon('KLM.png'))
    
    class Good(QtGui.QMainWindow, Ui_good):
        def __init__(self, parent=None):
            super(Good, self).__init__(parent)
            self.setupUi(self)
    
    class Ui_map(object):
        def setupUi(self, map):
            map.setObjectName(_fromUtf8("map"))
            map.resize(446, 825)
            map.setStyleSheet(_fromUtf8("background-image: url(1.png);"))
            self.centralwidget = QtGui.QWidget(map)
            self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
            map.setCentralWidget(self.centralwidget)
            self.retranslateUi(map)
            QtCore.QMetaObject.connectSlotsByName(map)
    
        def retranslateUi(self, map):
            map.setWindowTitle(_translate("map", "MainWindow", None))
    
    
    class Map(QtGui.QMainWindow, Ui_map):
        def __init__(self, parent=None):
            super(Map, self).__init__(parent)
            self.setupUi(self)
    
    class Ui_map2(object):
        def setupUi(self, map2):
            map2.setObjectName(_fromUtf8("map"))
            map2.resize(446, 825)
            map2.setStyleSheet(_fromUtf8("background-image: url(2.png);"))
            self.centralwidget = QtGui.QWidget(map2)
            self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
            map2.setCentralWidget(self.centralwidget)
            self.retranslateUi(map2)
            QtCore.QMetaObject.connectSlotsByName(map2)
    
        def retranslateUi(self, map2):
            map2.setWindowTitle(_translate("map", "MainWindow", None))
    
    
    class Map2(QtGui.QMainWindow, Ui_map2):
        def __init__(self, parent=None):
            super(Map2, self).__init__(parent)
            self.setupUi(self)
    
    class Ui_map3(object):
        def setupUi(self, map3):
            map3.setObjectName(_fromUtf8("map"))
            map3.resize(446, 825)
            map3.setStyleSheet(_fromUtf8("background-image: url(3.png);"))
            self.centralwidget = QtGui.QWidget(map3)
            self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
            map3.setCentralWidget(self.centralwidget)
            self.retranslateUi(map3)
            QtCore.QMetaObject.connectSlotsByName(map3)
    
        def retranslateUi(self, map3):
            map3.setWindowTitle(_translate("map", "MainWindow", None))
    
    class Map3(QtGui.QMainWindow, Ui_map3):
        def __init__(self, parent=None):
            super(Map3, self).__init__(parent)
            self.setupUi(self)
    
    class Ui_map4(object):
        def setupUi(self, map4):
            map4.setObjectName(_fromUtf8("map"))
            map4.resize(446, 825)
            map4.setStyleSheet(_fromUtf8("background-image: url(4.png);"))
            self.centralwidget = QtGui.QWidget(map4)
            self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
            map4.setCentralWidget(self.centralwidget)
            self.retranslateUi(map4)
            QtCore.QMetaObject.connectSlotsByName(map4)
    
        def retranslateUi(self, map):
            map.setWindowTitle(_translate("map", "MainWindow", None))
    
    class Map4(QtGui.QMainWindow, Ui_map4):
        def __init__(self, parent=None):
            super(Map4, self).__init__(parent)
            self.setupUi(self)
    
    if __name__ == "__main__":
        import sys
        app = QtGui.QApplication(sys.argv)
        uber = UberMap()
        reader = QRreader()
        good = Good()
        uber.openQRreaderSignal.connect(reader.show)
        reader.openUberSignal.connect(uber.show)
        reader.hideUberSignal.connect(uber.hide)
        uber.show()
        good.show()
        QtCore.QTimer.singleShot(3000, good.close)
        sys.exit(app.exec_())