Python 调用PyQt5 制作对话框,退出时候有二次确认(注:默认是直接退出)
1 # -*- ytf-8 -*- 2 """ 3 用PyQt建一个对话框,退出时提示有二次确认 4 """ 5 6 import sys 7 from PyQt5.QtWidgets import QApplication,QMessageBox,QWidget 8 9 class myWin(QWidget): 10 def __init__(self): 11 #执行父类的__init__构造方法 12 super().__init__() 13 #将窗口的设置委托给initUI方法 14 self.initUI() 15 def initUI(self): 16 #设置窗口 17 self.setWindowTitle("消息框") 18 self.setGeometry(200,200,500,500) #先位置再大小 19 self.show() 20 #重写关闭事件方法(closeEvent) 21 def closeEvent(self,event): 22 #获取消息框实例的值 23 msg = QMessageBox.question(self,"退出警告","你确定退出吗?",QMessageBox.Yes|QMessageBox.No,QMessageBox.No) #这里是固定格式,yes/no不能动 24 #判断消息的返回值 25 if msg ==QMessageBox.Yes: 26 event.accept() 27 else: 28 event.ignore() 29 if __name__=="__main__": 30 app=QApplication(sys.argv) 31 my=myWin() 32 sys.exit(app.exec_())
Python_menuBar
1 import sys 2 from PyQt5.QtWidgets import QApplication,QMainWindow,QAction,QMessageBox 3 from PyQt5.QtGui import QIcon 4 5 class myWin(QMainWindow): 6 def __init__(self): 7 super().__init__() 8 self.initUI() 9 10 def initUI(self): 11 #创建动作对象并设置 12 action_close=QAction(QIcon(‘icon.png‘),‘&退出‘,self) 13 action_close.setShortcut(‘A‘) 14 action_close.setStatusTip(‘这是退出功能‘) 15 action_close.triggered.connect(self.close) 16 17 action_open=QAction(QIcon(‘icon.png‘),‘&打开‘,self) 18 action_open.setShortcut(‘Ctrl+O‘) 19 action_open.setStatusTip(‘这是打开功能‘) 20 action_open.triggered.connect(self.open1) 21 22 #创建菜单 23 menuBar=self.menuBar() 24 menufile=menuBar.addMenu(‘&文件‘) 25 menufile.addAction(action_open) 26 menufile.addAction(action_close) 27 28 #设置状态栏 29 self.statusBar().showMessage(‘这个是状态栏....‘) 30 31 #设置窗口属性 32 self.setGeometry(100,300,400,400) 33 self.setWindowTitle(‘菜单栏实例‘) 34 self.setWindowIcon(QIcon(‘icon.png‘)) 35 36 self.show() 37 #重写关闭事件方法(closeEvent) 38 def closeEvent(self,event): 39 #获取消息框实例的值 40 msg=QMessageBox.question(self,‘退出警告‘,‘你确认退出吗??‘,QMessageBox.Yes | QMessageBox.No,QMessageBox.No) 41 #判定消息框的返回值 42 if msg==QMessageBox.Yes: 43 event.accept() 44 else: 45 event.ignore() 46 def open1(self): 47 print(‘马季是个相声家‘) 48 49 if __name__==‘__main__‘: 50 app=QApplication(sys.argv) 51 my=myWin() 52 sys.exit(app.exec_())