網站首頁 編程語言 正文
前言
最近在用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_())
結果如下:
總結
原文鏈接:https://blog.csdn.net/weixin_47406082/article/details/122803143
相關推薦
- 2023-01-14 C++之eigen安裝與測試方式_C 語言
- 2022-10-02 iOS簡單抽屜效果的實現方法_IOS
- 2023-06-05 Python?numpy有哪些常用數據類型_python
- 2022-05-21 如何使用rust實現簡單的單鏈表_相關技巧
- 2022-09-20 linux?shell字符串截取的詳細總結(實用!)_linux shell
- 2022-04-02 docker建立私有倉庫的過程_docker
- 2022-01-13 Vite2+TS+el3獲取DOM元素設置類型并進行表單校驗
- 2023-01-18 GO實現跳躍表的示例詳解_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支