1
我試圖將close key (red x)
連接到函數(消息框)。我到目前爲止所嘗試的都不起作用;當我點擊close key (red x)
時,我的代碼會凍結。沒有錯誤信息。PyQt5 - 如何將關閉鍵(紅色x)連接到函數
這裏是我的代碼:
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QMessageBox
class Ui_MainWindow(QMainWindow):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setWindowModality(QtCore.Qt.NonModal)
MainWindow.resize(987, 746)
MainWindow.setMinimumSize(567, 456)
MainWindow.setMaximumSize(987, 746)
font = QtGui.QFont()
font.setPointSize(9)
MainWindow.setFont(font)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", ""))
def Exit(self):
reply = QMessageBox.question(self, 'Quit', 'Are You Sure to Quit?', QMessageBox.No| QMessageBox.Yes)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
app.aboutToQuit.connect(Ui_MainWindow.Exit)
MainWindow = QtWidgets.QMainWindow()
MainWindow.show()
Ui = Ui_MainWindow()
Ui.setupUi(MainWindow)
sys.exit(app.exec_())
感謝。
非常感謝您的回答。我的代碼是由Qt Designer生成的。這就是'Ui_MainWindow'的原因。我嘗試從你的答案中用'super().__ init __()'插入類的__init__'構造函數,但是它並沒有完全解決我的問題。我的代碼現在不凍結,但它仍然不連接到消息框,它只是退出。 –
這很簡單,2件事: - 你必須在你的班級有closeEvent功能。第二件事,顯示的窗口是MainWindow,但你想要處理的類是Ui_MainWindow。 – NewBieBR
感謝您的回覆。我無法將您的答案應用於我的代碼,但它似乎不起作用。你可以請示例的方式來應用你的解決方案我的原始文章中的實際代碼,而不添加'def __init __(self):'? –