pyqt5中菜单栏点击事件无法响应closeEvent()事件!!跪求答案!!!!!

不多说,先上代码:

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'

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值