Okay, nicht sicher, was ich hier vermisse. Ich habe eine GUI-App für Arbeit erstellt, die eine Schließen-Schaltfläche enthält. Ich bin in der Lage, die closeEvent Funktion auszuführen, wenn der Benutzer die Schaltfläche zum Schließen des benutzerdefinierten Fensters verwendet. Wenn sie jedoch auf die Schließen-Schaltfläche in der GUI klicken, kann ich nicht den gleichen Effekt erzielen. Unten ist mein Code, der Fehler und ein Bild meiner GUI, das mein Problem zeigt. Vielen Dank im Voraus für die Hilfe. PYQT4: Kritische Message Box
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'icMainWin.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import icMainWin_rc
import sys
import os
import time
import os.path as osp
import ctypes
from ctypes import wintypes
import os
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
#setting the path variable for icon
path = osp.join(osp.dirname(sys.modules[__name__].__file__), 'I:\\Infection Control System Database\images\Malware-icon.png')
myappid = 'I:\\Infection Control System Database\images\Malware-icon.png' # arbitrary string
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)
lpBuffer = wintypes.LPWSTR()
AppUserModelID = ctypes.windll.shell32.GetCurrentProcessExplicitAppUserModelID
AppUserModelID(ctypes.cast(ctypes.byref(lpBuffer), wintypes.LPWSTR))
appid = lpBuffer.value
ctypes.windll.kernel32.LocalFree(lpBuffer)
if appid is not None:
print(appid)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(905, 675)
MainWindow.setMinimumSize(QtCore.QSize(905, 675))
MainWindow.setMaximumSize(QtCore.QSize(905, 680))
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
MainWindow.setFont(font)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(_fromUtf8("I:\Infection Control System Database\Program Files\images\ICDatabaseImage.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
-Code Verkürzte für die Buchung
self.retranslateUi(MainWindow)
QtCore.QObject.connect(self.actionExit, QtCore.SIGNAL(_fromUtf8("triggered()")), self.btnExit.click)
QtCore.QObject.connect(self.actionWar_Room, QtCore.SIGNAL(_fromUtf8("triggered()")), self.cmdWarRoom.click)
QtCore.QObject.connect(self.actionFlu, QtCore.SIGNAL(_fromUtf8("triggered()")), self.btnFlu.click)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
MainWindow.setTabOrder(self.btnExit, self.btnHelp)
MainWindow.setTabOrder(self.btnHelp, self.btnRequest)
MainWindow.setTabOrder(self.btnRequest, self.btnSOR_IFMC)
MainWindow.setTabOrder(self.btnSOR_IFMC, self.btnSOR_IAH)
MainWindow.setTabOrder(self.btnSOR_IAH, self.btnSOR_ILH)
MainWindow.setTabOrder(self.btnSOR_ILH, self.btnSOR_IMVH)
MainWindow.setTabOrder(self.btnSOR_IMVH, self.btnSOR_IFOH)
MainWindow.setTabOrder(self.btnSOR_IFOH, self.cmdEmail)
MainWindow.setTabOrder(self.cmdEmail, self.cmdHCSBrpt)
MainWindow.setTabOrder(self.cmdHCSBrpt, self.cmdWarRoom)
MainWindow.setTabOrder(self.cmdWarRoom, self.cmdReview)
MainWindow.setTabOrder(self.cmdReview, self.cmdIC_AccessDB)
MainWindow.setTabOrder(self.cmdIC_AccessDB, self.btnCaseCAUTI)
MainWindow.setTabOrder(self.btnCaseCAUTI, self.btnCaseCLABSI)
MainWindow.setTabOrder(self.btnCaseCLABSI, self.btnCaseSSI)
MainWindow.setTabOrder(self.btnCaseSSI, self.btnCaseVAP)
MainWindow.setTabOrder(self.btnCaseVAP, self.btnCaseLabID)
MainWindow.setTabOrder(self.btnCaseLabID, self.btnCaseMDRO)
MainWindow.setTabOrder(self.btnCaseMDRO, self.btnHH)
MainWindow.setTabOrder(self.btnHH, self.btnNHSN)
MainWindow.setTabOrder(self.btnNHSN, self.btnHAI)
MainWindow.setTabOrder(self.btnHAI, self.btnPremier)
MainWindow.setTabOrder(self.btnPremier, self.btnFlu)
MainWindow.setTabOrder(self.btnFlu, self.btnMicrosoft)
MainWindow.setTabOrder(self.btnMicrosoft, self.dateEdit)
MainWindow.setTabOrder(self.dateEdit, self.timeEdit)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "Infection Control Database - Landing Page", None))
self.lblWelcome.setText(_translate("MainWindow", "Welcome!", None))
self.dateEdit.setDisplayFormat(_translate("MainWindow", "MMMM dd yyyy", None))
self.btnExit.setStatusTip(_translate("MainWindow", "Exit Database", None))
self.btnExit.setText(_translate("MainWindow", "Exit", None))
self.btnExit.setShortcut(_translate("MainWindow", "Ctrl+Shift+Q", None))
self.btnHelp.setText(_translate("MainWindow", "Help", None))
self.btnRequest.setText(_translate("MainWindow", "Request ", None))
self.grpReportsSOR.setStatusTip(_translate("MainWindow", "SOR Reports", None))
self.grpReportsSOR.setTitle(_translate("MainWindow", "SOR Files", None))
self.btnSOR_IFMC.setText(_translate("MainWindow", "IFMC", None))
self.btnSOR_IAH.setText(_translate("MainWindow", "IAH", None))
self.btnSOR_ILH.setText(_translate("MainWindow", "ILH", None))
self.btnSOR_IMVH.setText(_translate("MainWindow", "IMVH", None))
self.btnSOR_IFOH.setText(_translate("MainWindow", "IFOH", None))
self.grp_EnterCaseData.setTitle(_translate("MainWindow", "Case Data Entry", None))
self.btnCaseCAUTI.setStatusTip(_translate("MainWindow", "Enter CAUTI Case", None))
self.btnCaseCAUTI.setText(_translate("MainWindow", "CAUTI Case", None))
self.btnCaseCLABSI.setStatusTip(_translate("MainWindow", "Enter CLABSI Case ", None))
self.btnCaseCLABSI.setText(_translate("MainWindow", "CLABSI Case", None))
self.btnCaseSSI.setStatusTip(_translate("MainWindow", "Enter SSI Case", None))
self.btnCaseSSI.setText(_translate("MainWindow", "SSI Case", None))
self.btnCaseVAP.setStatusTip(_translate("MainWindow", "Enter VAP Case", None))
self.btnCaseVAP.setText(_translate("MainWindow", "VAP Case", None))
self.btnCaseLabID.setStatusTip(_translate("MainWindow", "Enter LabID Case", None))
self.btnCaseLabID.setText(_translate("MainWindow", "LabID Case", None))
self.btnCaseMDRO.setStatusTip(_translate("MainWindow", "Enter MDRO Cases", None))
self.btnCaseMDRO.setText(_translate("MainWindow", "MDRO", None))
self.cmdEmail.setText(_translate("MainWindow", "Email", None))
self.cmdHCSBrpt.setText(_translate("MainWindow", "HCSB Report", None))
self.cmdWarRoom.setText(_translate("MainWindow", "War Room Report", None))
self.cmdReview.setText(_translate("MainWindow", "Review HAI Data", None))
self.cmdIC_AccessDB.setText(_translate("MainWindow", "2011 IC Access Database", None))
self.label.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-weight:600; color:#aa0000;\">Infection Control Database</span></p></body></html>", None))
self.btnHH.setStatusTip(_translate("MainWindow", "Hand Hygiene Application", None))
self.btnNHSN.setStatusTip(_translate("MainWindow", "NHSN Website", None))
self.btnHAI.setStatusTip(_translate("MainWindow", "HAI Folder", None))
self.btnPremier.setStatusTip(_translate("MainWindow", "Navigate to SafetySurveillor: https://ss.premierinc.com/Setnet/user/Login.po ", None))
self.btnFlu.setStatusTip(_translate("MainWindow", "Flu Reports", None))
self.groupBox.setStatusTip(_translate("MainWindow", "Navigate to Location", None))
self.groupBox.setTitle(_translate("MainWindow", "Navigation ", None))
self.menuFile.setTitle(_translate("MainWindow", "File", None))
self.menuEnd_Processes.setTitle(_translate("MainWindow", "End Processes", None))
self.menuView.setTitle(_translate("MainWindow", "View", None))
self.menuReports.setTitle(_translate("MainWindow", "Reports", None))
self.actionExit.setText(_translate("MainWindow", "Exit", None))
self.actionExit.setShortcut(_translate("MainWindow", "Ctrl+Shift+Q", None))
self.actionTerminate_Excel.setText(_translate("MainWindow", "Terminate Excel", None))
self.actionTerminate_Access.setText(_translate("MainWindow", "Terminate Access", None))
self.actionTerminate_Powerpoint.setText(_translate("MainWindow", "Terminate PowerP", None))
self.actionTerminate_Word.setText(_translate("MainWindow", "Terminate Word", None))
self.actionReset_Citrix.setText(_translate("MainWindow", "Reset Citrix", None))
self.actionReset_Citrix.setStatusTip(_translate("MainWindow", "Reset Citrix Server", None))
self.actionTerminate_Outlook.setText(_translate("MainWindow", "Terminate Outlook", None))
self.actionHCSB.setText(_translate("MainWindow", "HCSB", None))
self.actionWar_Room.setText(_translate("MainWindow", "War Room", None))
self.actionFlu.setText(_translate("MainWindow", "Flu", None))
Signal-Ereignis (E-Mail)
self.cmdEmail.clicked.connect(self.EmailClicked)
Signal-Ereignis (Exit)
self.btnExit.clicked.connect(self.ExitClicked)
Aktion Ereignis (E-Mail)
def EmailClicked(self):os.startfile('C:\\Program Files\Microsoft Office\Office14\OUTLOOK.EXE')
Event Action (Exit)
def ExitClicked(self):
ret = QMessageBox.critical(self, "Critical",
'Are you sure you want to exit?', QMessageBox.Ok, QMessageBox.Cancel)
ret = msgBox.exec_()
if ret == msgBox.Yes:
QtCore.QCoreApplication.instance().quit()
class ControlMainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
super(ControlMainWindow, self).__init__(parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.dateEdit.setDisplayFormat("MMM dd yyyy")
self.ui.timeEdit.setDisplayFormat("hh:mm:ss AP")
self.updateTime()
self.timer = QtCore.QTimer(self)
self.timer.timeout.connect(self.updateTime)
self.timer.start(1000)
def updateTime(self):
current = QtCore.QDateTime.currentDateTime()
self.ui.dateEdit.setDate(current.date())
self.ui.timeEdit.setTime(current.time())
def closeEvent(self, event):
result = QtGui.QMessageBox.critical(self,
"Confirm Exit...",
"Are you sure you want to exit?",
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
event.ignore()
if result == QtGui.QMessageBox.Yes:
event.accept()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
#app.setStyle("Classic")
mySW = ControlMainWindow()
mySW.show()
sys.exit(app.exec_())
versuchen, mit: def ExitClicked (Selbst-): self.close() – eyllanesc