不多说,先上代码:
class Ui_MainWindow(QtWidgets.QMainWindow):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1154, 809)
self.CAM_NUM = 'E:\\lukoushipin.mp4'
#self.CAM_NUM = 'rtsp://admin:12345678a@192.168.1.64:554/h264/ch1/main/av_stream'
self.__flag_work = 0
self.x =0
self.centralWidget = QtWidgets.QWidget(MainWindow)
self.centralWidget.setObjectName("centralWidget")
self.horizontalLayoutWidget = QtWidgets.QWidget(self.centralWidget)
self.horizontalLayoutWidget.setGeometry(QtCore.QRect(10, 20, 1111, 581))
self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout.setObjectName("horizontalLayout")
self.label_show_camera1 = QtWidgets.QLabel(self.horizontalLayoutWidget)
self.label_show_camera1.setObjectName("label_show_camera1")
self.horizontalLayout.addWidget(self.label_show_camera1)
self.label_show_camera2 = QtWidgets.QLabel(self.horizontalLayoutWidget)
self.label_show_camera2.setObjectName("label_show_camera2")
self.horizontalLayout.addWidget(self.label_show_camera2)
MainWindow.setCentralWidget(self.centralWidget)
self.menuBar = QtWidgets.QMenuBar(MainWindow)
self.menuBar.setGeometry(QtCore.QRect(0, 0, 1154, 23))
self.menuBar.setObjectName("menuBar")
self.menu = QtWidgets.QMenu(self.menuBar)
self.menu.setObjectName("menu")
MainWindow.setMenuBar(self.menuBar)
self.button_open_camera = QtWidgets.QAction(MainWindow)
self.button_open_camera.setObjectName("button_open_camera")
self.button_close = QtWidgets.QAction(MainWindow)
self.button_close.setObjectName("button_close")
self.menu.addAction(self.button_open_camera)
self.menu.addAction(self.button_close)
self.menuBar.addAction(self.menu.menuAction())
self.retranslateUi(MainWindow)
self.button_open_camera.triggered.connect(self.button_open_camera_click)
timer_camera.timeout.connect(self.show_camera)
self.button_close.triggered.connect(MainWindow.closeEvent)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label_show_camera1.setText(_translate("MainWindow", "摄像头1"))
self.label_show_camera2.setText(_translate("MainWindow", "摄像头2"))
self.menu.setTitle(_translate("MainWindow", "文件(F)"))
self.button_open_camera.setText(_translate("MainWindow", "打开摄像头(F)..."))
self.button_open_camera.setShortcut(_translate("MainWindow", "Ctrl+F"))
self.button_close.setText(_translate("MainWindow", "退出"))
class MainWindow(QtWidgets.QMainWindow):
def closeEvent(self, event):
ok = QtWidgets.QPushButton()
cacel = QtWidgets.QPushButton()
msg = QtWidgets.QMessageBox(QtWidgets.QMessageBox.Warning, u"关闭", u"是否关闭!")
msg.addButton(ok,QtWidgets.QMessageBox.ActionRole)
msg.addButton(cacel, QtWidgets.QMessageBox.RejectRole)
ok.setText(u'确定')
cacel.setText(u'取消')
# msg.setDetailedText('sdfsdff')
if msg.exec_() == QtWidgets.QMessageBox.RejectRole:
event.ignore()
else:
if cap.isOpened():
cap.release()
if timer_camera.isActive():
timer_camera.stop()
event.accept()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = MainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
运行之后,点击退出菜单栏,没反应,错误信息如下:Exception "unhandled AttributeError"
'bool' object has no attribute 'ignore'