前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python高级进阶#007 pyqt5消息盒子QMessageBox

Python高级进阶#007 pyqt5消息盒子QMessageBox

作者头像
刘金玉编程
发布2019-10-17 17:38:26
1.7K0
发布2019-10-17 17:38:26
举报
文章被收录于专栏:编程创造城市

一、知识回顾

1.使用类进行pyqt5的gui开发封装

2.使用setGeometry函数:大小、位置

3.掌握类的继承与内部调用

本节知识视频教程:

视频内容

以下开始文字讲解:

一、Pyqt5界面基本写法

目标效果

点击按钮,出现消息选择框,处理消息选择框的点击结果

效果图

二、基础的类封装代码

代码语言:javascript
复制
import sysfrom PyQt5.QtWidgets import QApplication,QWidget,QMessageBox,QPushButtonclass MyClass(QWidget):   def __init__(self):     super().__init__()     self.initUI()   def initUI(self):     self.setGeometry(300,200,400,300)     self.setWindowTitle("刘金玉编程")     btn=QPushButton("关闭窗体",self)     btn.move(50,50)     self.show()if __name__=="__main__":  app=QApplication(sys.argv)  mc=MyClass()  app.exec_()

三、消息盒子

我们开始使用类库QMessageBox

看看常见的不同的图标的消息类别:

带有图标的消息盒子,图标可以是问号question,信息information,警告warning

注意:使用消息盒子后,最后会返回一个按钮类型的结果,这个结果也是我们人机交互的结果。

四、重写事件

重写关闭事件考虑思路:

当点击关闭按钮的时候,执行的是窗体的关闭,而窗体的关闭等同于点击窗体右上角的关闭X的自带窗体按钮的效果,这个效果是Qwidget基类所实现的。

提问:我们该如何实现我们自己需要的关闭时候的效果呢?

  • 重写父类方法。
  • 重写关闭事件的方法。

QMessageBox使用格式

具体问号使用格式:

QMessageBox.question(self,消息标题,消息内容,消息的按钮类型,首次打开后默认选中哪个按钮)

使用举例:

QMessageBox.question(self,"老刘提示您:","您真的要关闭窗体吗?",QMessageBox.Yes|QMessageBox.No,QMessageBox.No)

如何阻止事件的关闭呢?

利用传过来的事件对象

我们通过输出的形式,看到事件对象的属性和方法,猜测到具体的调用方法。

event.accept()同意关闭

event.ignore()忽律操作

if result==QMessageBox.Yes:

event.accept()

else:

event.ignore()

QMessageBox.information(self,"消息","谢谢!")

五、总结强调

1.掌握的类的封装基本代码

2.掌握类的事件重写

3.掌握的事件对象的应用

本节知识源代码:

代码语言:javascript
复制
import sysfrom PyQt5.QtWidgets import QApplication,QWidget,QMessageBox,QPushButton
class MyClass(QWidget):    def __init__(self):        super().__init__()        self.initUI()
    def initUI(self):        self.setGeometry(300,200,400,300)        self.setWindowTitle("刘金玉编程")        btn=QPushButton("关闭窗体",self)        btn.move(50,50)        btn.clicked.connect(self.close)        self.show()
    def closeEvent(self, event):        print("老刘关闭的操作")        result=QMessageBox.question(self,"老刘提示您:","您真的要关闭窗体吗?",QMessageBox.Yes|QMessageBox.No,QMessageBox.No)        if result==QMessageBox.Yes:            event.accept()        else:            event.ignore()            QMessageBox.information(self,"消息","谢谢!")

if __name__=="__main__":    app=QApplication(sys.argv)    mc=MyClass()    app.exec_()

相关文章:

  1. python高级进阶#001可视化界面开发环境搭建
  2. python高级进阶#002第一个pyqt5程序
  3. Python高级进阶#003 pyqt5与qtdesigner对照分析
  4. Python高级进阶#004 pyqt5设置窗体图标
  5. Python高级进阶#005 pyqt5显示提示框
  6. Python高级进阶#006 pyqt5类封装
  7. python中自定义序列的实现
  8. python第一个程序,定位在小学数学还是幼儿园?
  9. python输入与输出涨姿势
  10. python中认识异常,合理利用异常
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程创造城市 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云小微
腾讯云小微,是一套腾讯云的智能服务系统,也是一个智能服务开放平台,接入小微的硬件可以快速具备听觉和视觉感知能力,帮助智能硬件厂商实现语音人机互动和音视频服务能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档