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