将按钮连接到无法正常工作的功能

时间:2019-06-25 11:21:54

标签: python python-3.x pyqt

我想创建一个简单的窗口来通知用户错误,并且我想在用户按下“确定”按钮时关闭所有内容,但是当我按下按钮时,已连接的功能未运行并且我不知道出了什么问题在我构建的类似窗口中,它的运行情况非常好。

class ErrorUi(QtWidgets.QWidget):
    def __init__(self, error):
        super().__init__()
        self.error = error
        self.functions = ErrorFunctions(self)
        self.setupUi(self)

    def setupUi(self, ErrorMessage):

        ErrorMessage.setObjectName("ErrorMessage")
        ErrorMessage.resize(272, 143)
        ErrorMessage.setStyleSheet("background-color: rgb(85, 87, 83);")


        # ok button
        self.ok_button = QtWidgets.QPushButton(ErrorMessage)
        self.ok_button.clicked.connect(self.functions.ok_button)
        self.ok_button.setGeometry(QtCore.QRect(100, 90, 88, 27))
        self.ok_button.setStyleSheet("background-color: rgb(238, 238, 236);")
        self.ok_button.setObjectName("ok_button")

        # error
        self.label = QtWidgets.QLabel(ErrorMessage)
        self.label.setGeometry(QtCore.QRect(30, 20, 240, 100))
        self.label.setObjectName("label")

        self.ok_button.raise_()
        self.label.raise_()

        self.translate_ui(ErrorMessage)
        QtCore.QMetaObject.connectSlotsByName(ErrorMessage)

    def translate_ui(self, ErrorMessage):
        _translate = QtCore.QCoreApplication.translate
        ErrorMessage.setWindowTitle(_translate("ErrorMessage", "Camfort"))
        self.ok_button.setText(_translate("ErrorMessage", "Ok"))
        self.label.setText(_translate("ErrorMessage", self.error))

    def closeEvent(self, a0: QtGui.QCloseEvent) -> None:
        self.functions.ok_button()


class ErrorFunctions(object):
    def __init__(self, window_handle):
        self.window_handle = window_handle

    def ok_button(self):
        self.window_handle.close()
        os._exit(0)

我希望按下按钮后程序会关闭并停止,但它不起作用。

0 个答案:

没有答案
相关问题