PyQt5每天必学之弹出消息框


Posted in Python onApril 19, 2018

默认情况下,如果我们点击标题栏上的 X 按钮,QWidget 关闭。有时候,我们需要改变这个默认行为。例如,如果我们有一个文件,要在编辑器中打开,我们可以先显示一个消息框,确认打开与否的操作。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

当我们点击应用程序窗口的关闭按钮,该程序显示一个确认信息框。

作者:我的世界你曾经来过
博客:http://blog.csdn.net/weiaitaowang
最后编辑:2016年7月29日
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox

class Example(QWidget):

 def __init__(self):
  super().__init__()

  self.initUI()

 def initUI(self):

  self.setGeometry(300, 300, 300, 220)
  self.setWindowTitle('消息盒子')  
  self.show()

 def closeEvent(self, event):

  reply = QMessageBox.question(self, '信息', '确认退出吗?', 
   QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

  if reply == QMessageBox.Yes:
   event.accept()
  else:
   event.ignore()

if __name__ == '__main__':

 app = QApplication(sys.argv)
 ex = Example()
 sys.exit(app.exec_())

如果我们关闭 QWidget控件,将产生 QCloseEvent 事件。修改控件特性我们需要重新实现 closeEvent() 事件处理程序。

reply = QMessageBox.question(self, '信息', '确认退出吗?', 
   QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

我们显示一个消息框,它有两个按钮:Yes和No。第一个字符串出现在标题栏。第二个字符串是对话框中显示的消息文本。第三个参数指定弹出的对话框中的按钮组合。最后一个参数是默认按钮,它是具有初始键盘焦点的按钮。返回值被存储在reply 变量中。

if reply == QMessageBox.Yes:
   event.accept()
  else:
   event.ignore()

在这里我们使用 if 测试返回值。如果我们点击 Yes 按钮,我们接受了按钮控件的关闭并执行应用程序的终止事件。否则,我们忽略关闭事件。

程序执行后点击右上角的 x 弹出确认退出消息盒子

PyQt5每天必学之弹出消息框PyQt5每天必学之弹出消息框

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python3.1版本带来的核心变化
Apr 07 Python
pygame学习笔记(2):画点的三种方法和动画实例
Apr 15 Python
python用pickle模块实现“增删改查”的简易功能
Jun 07 Python
用Pygal绘制直方图代码示例
Dec 07 Python
Django中的forms组件实例详解
Nov 08 Python
python实现windows壁纸定期更换功能
Jan 21 Python
python实现K近邻回归,采用等权重和不等权重的方法
Jan 23 Python
Python中的字符串切片(截取字符串)的详解
May 15 Python
对Django的restful用法详解(自带的增删改查)
Aug 28 Python
利用Python复制文件的9种方法总结
Sep 02 Python
解决python使用list()时总是报错的问题
May 05 Python
基于django micro搭建网站实现加水印功能
May 22 Python
详谈python3中用for循环删除列表中元素的坑
Apr 19 #Python
PyQt5每天必学之关闭窗口
Apr 19 #Python
python实现在IDLE中输入多行的方法
Apr 19 #Python
python贪婪匹配以及多行匹配的实例讲解
Apr 19 #Python
PyQt5每天必学之工具提示功能
Apr 19 #Python
PyQt5每天必学之QSplitter实现窗口分隔
Apr 19 #Python
python 读入多行数据的实例
Apr 19 #Python
You might like
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
Linux下编译redis和phpredis的方法
2016/04/07 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
如何使用jQuery Draggable和Droppable实现拖拽功能
2013/07/05 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
js实现的星星评分功能函数
2015/12/09 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
Python爬虫获取图片并下载保存至本地的实例
2018/06/01 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
python实现桌面壁纸切换功能
2019/01/21 Python
python五子棋游戏的设计与实现
2019/06/18 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
pycharm 的Structure界面设置操作
2021/02/05 Python
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
有影响力的品牌之家:Our Social Collective
2019/06/08 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
C#可否对内存进行直接的操作
2015/02/26 面试题
什么是继承
2013/12/07 面试题
营销总经理岗位职责
2014/02/02 职场文书
行政助理的岗位职责
2014/02/18 职场文书
施工协议书范本
2014/04/22 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
使用Python获取字典键对应值的方法
2022/04/26 Python
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python