關(guān)于pyqt5彈出提示框的詳細介紹
前言
最近在用pyqt5設(shè)計軟件時,想到了一些關(guān)于提示框的操作,如果軟件關(guān)閉時可以彈出確定關(guān)閉的彈窗;程序執(zhí)行完成時可以彈出完成的提示;出現(xiàn)錯誤提示出現(xiàn)錯誤的提示等等。在網(wǎng)上查閱了很多,自己總結(jié)了一下,今天分享給大家 彈窗的分類: 軟件關(guān)閉提示彈框 信息提示彈框 錯誤提示彈框 信息警告彈框 關(guān)于彈窗
雖然有分類,但是實際操作是大同小異的(每一類都介紹兩種方法)
1.軟件關(guān)閉彈框
這類的彈框一般是在整個軟件關(guān)閉的時候提醒用戶是否需要退出整個軟件
(構(gòu)建成函數(shù)的方法)
def closeEvent(self, event): #關(guān)閉窗口觸發(fā)以下事件
a = QMessageBox.question(self, '退出', '你確定要退出嗎?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) #"退出"代表的是彈出框的標題,"你確認退出.."表示彈出框的內(nèi)容
if a == QMessageBox.Yes:
event.accept() #接受關(guān)閉事件
else:
event.ignore() #忽略關(guān)閉事件(直接放入相關(guān)程序執(zhí)行完畢的后面的方法)
msg_box = QMessageBox(QMessageBox.Question, '退出', '你確定退出嗎?') #退出表示彈出框標題,"你確定退出嗎?"表示彈出框的內(nèi)容 msg_box.exec_() #執(zhí)行彈出框 與確定退出的事件綁定可以參考第一種方法
2.信息提示框
這個彈框一般用戶給用戶展示一些基本信息
(構(gòu)建成函數(shù)的方法)
def show_message(self):
QMessageBox.information(self, "標題", "我很喜歡學習python",
QMessageBox.Yes) #最后的Yes表示彈框的按鈕顯示為Yes,默認按鈕顯示為OK,不填QMessageBox.Yes即為默認(直接放入相關(guān)程序執(zhí)行完畢的后面的方法)
msg_box = QMessageBox(QMessageBox.Information, '標題', '我很喜歡python') msg_box.exec_()
3.錯誤提示框
這類的彈框一般用于用戶執(zhí)行了某些錯誤操作而導致的,這類的錯誤是必須要處理的,必須要提示用戶
(構(gòu)建成函數(shù)的方法)
def show_message(self):
QMessageBox.critical(self, "錯誤", "系統(tǒng)錯誤")(直接放入相關(guān)程序執(zhí)行完畢的后面的方法)
msg_box = QMessageBox(QMessageBox.Critical, '錯誤', '出現(xiàn)錯誤') msg_box.exec_()
4.警告提示框
這類的彈框一般提示用戶最好操作什么,警示用戶操作
(構(gòu)建成函數(shù)的方法)
def show_message(self):
QMessageBox.warning(self, "警告", "如果在不學習,你會被淘汰", QMessageBox.Cancel)(直接放入相關(guān)程序執(zhí)行完畢的后面的方法)
msg_box = QMessageBox(QMessageBox.Warning, '警告', '你再不學習就要被淘汰了') msg_box.exec_()
5.關(guān)于彈窗
這類彈框主要是給用戶展示系統(tǒng)信息,軟件介紹,公司介紹之類的
(構(gòu)建成函數(shù)的方法)
def show_message(self):
QMessageBox.about(self, "關(guān)于",
"本文作者QQ 8594969")(直接放入相關(guān)程序執(zhí)行完畢的后面的方法)
msg_box = QMessageBox(QMessageBox.About, '關(guān)于', '本文作者QQ 8594969') msg_box.exec_()
不管上面的那種方法,都要導入以下依賴包
from PyQt5.QtWidgets import QMessageBox
關(guān)于彈出框的圖標問題,我查了很多資料,暫時只知道在相應的主界面設(shè)計了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)#因為繼承關(guān)系,要對父類初始化
#通過super初始化父類,__init__()函數(shù)無self,若直接QtWidgets.QWidget.__init__(self),括號里是有self的
self.setGeometry(300, 300, 1000,1000) # setGeometry()方法完成兩個功能--設(shè)置窗口在屏幕上的位置和設(shè)置窗口本身的大小。它的前兩個參數(shù)是窗口在屏幕上的x和y坐標。后兩個參數(shù)是窗口本身的寬和高
self.setWindowTitle(u'窗口') # 設(shè)置窗體標題,本行可有可無。
self.button = QtWidgets.QPushButton(u'測試', self) # 創(chuàng)建一個按鈕顯示‘測試'兩字
self.button.move(300,300)
self.button.clicked.connect(self.show_message) # 信號槽
def show_message(self):
QtWidgets.QMessageBox.critical(self, "錯誤", "系統(tǒng)錯誤請關(guān)機重啟")
#內(nèi)容要長,太短會導致標題顯示不全!
app=QtWidgets.QApplication(sys.argv)
window=MessageBox()
window.show()
sys.exit(app.exec_())結(jié)果如下:

總結(jié)
到此這篇關(guān)于pyqt5彈出提示框的文章就介紹到這了,更多相關(guān)pyqt5彈出提示框內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
對Python 窗體(tkinter)樹狀數(shù)據(jù)(Treeview)詳解
今天小編就為大家分享一篇對Python 窗體(tkinter)樹狀數(shù)據(jù)(Treeview)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
Python 游戲大作炫酷機甲闖關(guān)游戲爆肝數(shù)千行代碼實現(xiàn)案例進階
本篇文章給大家?guī)鞵ython的一個游戲大制作—機甲闖關(guān)冒險,數(shù)千行代碼實現(xiàn)的游戲,過程很詳細,對大家的學習或工作具有一定的借鑒價值,需要的朋友可以參考下2021-10-10
python數(shù)據(jù)結(jié)構(gòu)之棧、隊列及雙端隊列
在上一章的學習中,我們主要學習了怎么去衡量一個算法的好壞,比較常見的方式是使用大O記法,就是所謂的時間復雜度,這一章節(jié)我來學習基本的數(shù)據(jù)結(jié)構(gòu),如棧、隊列和雙端隊列等等。感興趣的小伙伴可以參考一下2021-12-12
python機器學習實現(xiàn)神經(jīng)網(wǎng)絡示例解析
這篇文章主要為大家介紹了python機器學習python實現(xiàn)神經(jīng)網(wǎng)絡的示例解析,在同樣在進行python機器學習的同學可以借鑒參考下,希望能夠有所幫助2021-10-10

