pyqt5弹出提示框
星浩前进中 人气:0前言
最近在用pyqt5设计软件时,想到了一些关于提示框的操作,如果软件关闭时可以弹出确定关闭的弹窗;程序执行完成时可以弹出完成的提示;出现错误提示出现错误的提示等等。在网上查阅了很多,自己总结了一下,今天分享给大家 弹窗的分类: 软件关闭提示弹框 信息提示弹框 错误提示弹框 信息警告弹框 关于弹窗
虽然有分类,但是实际操作是大同小异的(每一类都介绍两种方法)
1.软件关闭弹框
这类的弹框一般是在整个软件关闭的时候提醒用户是否需要退出整个软件
(构建成函数的方法)
def closeEvent(self, event): #关闭窗口触发以下事件 a = QMessageBox.question(self, '退出', '你确定要退出吗?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) #"退出"代表的是弹出框的标题,"你确认退出.."表示弹出框的内容 if a == QMessageBox.Yes: event.accept() #接受关闭事件 else: event.ignore() #忽略关闭事件
(直接放入相关程序执行完毕的后面的方法)
msg_box = QMessageBox(QMessageBox.Question, '退出', '你确定退出吗?') #退出表示弹出框标题,"你确定退出吗?"表示弹出框的内容 msg_box.exec_() #执行弹出框 与确定退出的事件绑定可以参考第一种方法
2.信息提示框
这个弹框一般用户给用户展示一些基本信息
(构建成函数的方法)
def show_message(self): QMessageBox.information(self, "标题", "我很喜欢学习python", QMessageBox.Yes) #最后的Yes表示弹框的按钮显示为Yes,默认按钮显示为OK,不填QMessageBox.Yes即为默认
(直接放入相关程序执行完毕的后面的方法)
msg_box = QMessageBox(QMessageBox.Information, '标题', '我很喜欢python') msg_box.exec_()
3.错误提示框
这类的弹框一般用于用户执行了某些错误操作而导致的,这类的错误是必须要处理的,必须要提示用户
(构建成函数的方法)
def show_message(self): QMessageBox.critical(self, "错误", "系统错误")
(直接放入相关程序执行完毕的后面的方法)
msg_box = QMessageBox(QMessageBox.Critical, '错误', '出现错误') msg_box.exec_()
4.警告提示框
这类的弹框一般提示用户最好操作什么,警示用户操作
(构建成函数的方法)
def show_message(self): QMessageBox.warning(self, "警告", "如果在不学习,你会被淘汰", QMessageBox.Cancel)
(直接放入相关程序执行完毕的后面的方法)
msg_box = QMessageBox(QMessageBox.Warning, '警告', '你再不学习就要被淘汰了') msg_box.exec_()
5.关于弹窗
这类弹框主要是给用户展示系统信息,软件介绍,公司介绍之类的
(构建成函数的方法)
def show_message(self): QMessageBox.about(self, "关于", "本文作者QQ 8594969")
(直接放入相关程序执行完毕的后面的方法)
msg_box = QMessageBox(QMessageBox.About, '关于', '本文作者QQ 8594969') msg_box.exec_()
不管上面的那种方法,都要导入以下依赖包
from PyQt5.QtWidgets import QMessageBox
关于弹出框的图标问题,我查了很多资料,暂时只知道在相应的主界面设计了QICon()后,弹出框的图标会与主界面的图标一样
附:Python-PyQt5错误提示弹框
python文件代码:
# -*- coding: utf-8 -*- import sys from PyQt5 import QtWidgets class MessageBox(QtWidgets.QWidget):#继承自父类QtWidgets.QWidget def __init__(self,parent = None):#parent = None代表此QWidget属于最上层的窗口,也就是MainWindows. QtWidgets.QWidget.__init__(self)#因为继承关系,要对父类初始化 #通过super初始化父类,__init__()函数无self,若直接QtWidgets.QWidget.__init__(self),括号里是有self的 self.setGeometry(300, 300, 1000,1000) # setGeometry()方法完成两个功能--设置窗口在屏幕上的位置和设置窗口本身的大小。它的前两个参数是窗口在屏幕上的x和y坐标。后两个参数是窗口本身的宽和高 self.setWindowTitle(u'窗口') # 设置窗体标题,本行可有可无。 self.button = QtWidgets.QPushButton(u'测试', self) # 创建一个按钮显示‘测试'两字 self.button.move(300,300) self.button.clicked.connect(self.show_message) # 信号槽 def show_message(self): QtWidgets.QMessageBox.critical(self, "错误", "系统错误请关机重启") #内容要长,太短会导致标题显示不全! app=QtWidgets.QApplication(sys.argv) window=MessageBox() window.show() sys.exit(app.exec_())
结果如下:
总结
加载全部内容