如何解决PyQt5 在 MainWindow 上单击“X”时引发关闭事件
我有一个 Python 应用程序。 UI 代码是使用 QT Designer 生成的,并作为单独的 python 文件调用。当“X”关闭时,我无法引发 closeEvent
外部界面文件
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'demoui.ui'
#
# Created by: PyQt5 UI code generator 5.15.4.
from PyQt5 import QtCore,QtGui,QtWidgets
class Ui_MainWindow(object):
def setupUi(self,MainWindow):
MainWindow.setobjectName("MainWindow")
MainWindow.resize(640,480)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setobjectName("centralwidget")
self.horizontalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
self.horizontalLayoutWidget.setGeometry(QtCore.QRect(10,20,160,80))
self.horizontalLayoutWidget.setobjectName("horizontalLayoutWidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
self.horizontalLayout.setContentsMargins(0,0)
self.horizontalLayout.setobjectName("horizontalLayout")
self.label = QtWidgets.QLabel(self.horizontalLayoutWidget)
self.label.setobjectName("label")
self.horizontalLayout.addWidget(self.label)
self.label_2 = QtWidgets.QLabel(self.horizontalLayoutWidget)
self.label_2.setobjectName("label_2")
self.horizontalLayout.addWidget(self.label_2)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0,640,18))
self.menubar.setobjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setobjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self,MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setwindowTitle(_translate("MainWindow","MainWindow"))
self.label.setText(_translate("MainWindow","TextLabel"))
self.label_2.setText(_translate("MainWindow","TextLabel"))
from demoui import *
class D_MainWindow(QtWidgets.QMainWindow,Ui_MainWindow):
def __init__(self):
#super().__init__()
super(D_MainWindow,self).__init__() # note this too
self.setupUi(self)
self.retranslateUi(self)
def closeEvent(self,event):
print ("Closing window Now")
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = D_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
我觉得我犯了一些 OOP 实例化/调用错误。 可以请一些机构指出吗 谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。