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 相关文章推荐
跟老齐学Python之使用Python操作数据库(1)
Nov 25 Python
初学python的操作难点总结(新手必看篇)
Aug 03 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
Aug 03 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
Aug 03 Python
python利用跳板机ssh远程连接redis的方法
Feb 19 Python
PyQt5 QTable插入图片并动态更新的实例
Jun 18 Python
pandas 数据结构之Series的使用方法
Jun 21 Python
Django Rest framework权限的详细用法
Jul 25 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 Python
Tensorflow设置显存自适应,显存比例的操作
Feb 03 Python
python和php哪个容易学
Jun 19 Python
Python利用FlashText算法实现替换字符串
Mar 31 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之uniqid()函数用法
2014/11/03 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
jQuery中:input选择器用法实例
2015/01/03 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
2015/01/09 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
微信小程序转发事件实现解析
2019/10/22 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
Python解析树及树的遍历
2016/02/03 Python
在Python web中实现验证码图片代码分享
2017/11/09 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
python使用tornado实现简单爬虫
2018/07/28 Python
python使用rpc框架gRPC的方法
2018/08/24 Python
在Pycharm中执行scrapy命令的方法
2019/01/16 Python
详解Python循环作用域与闭包
2019/03/21 Python
pytorch GAN生成对抗网络实例
2020/01/10 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
护士辞职信模板
2014/01/20 职场文书
如何写自我鉴定
2014/03/19 职场文书
大学新生军训自我鉴定
2014/09/18 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
同意落户证明
2015/06/19 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS