日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

關(guān)于pyqt5彈出提示框的詳細(xì)介紹_python

作者:星浩前進(jìn)中 ? 更新時(shí)間: 2022-10-07 編程語(yǔ)言

前言

最近在用pyqt5設(shè)計(jì)軟件時(shí),想到了一些關(guān)于提示框的操作,如果軟件關(guān)閉時(shí)可以彈出確定關(guān)閉的彈窗;程序執(zhí)行完成時(shí)可以彈出完成的提示;出現(xiàn)錯(cuò)誤提示出現(xiàn)錯(cuò)誤的提示等等。在網(wǎng)上查閱了很多,自己總結(jié)了一下,今天分享給大家 彈窗的分類: 軟件關(guān)閉提示彈框 信息提示彈框 錯(cuò)誤提示彈框 信息警告彈框 關(guān)于彈窗

雖然有分類,但是實(shí)際操作是大同小異的(每一類都介紹兩種方法)

1.軟件關(guān)閉彈框

這類的彈框一般是在整個(gè)軟件關(guān)閉的時(shí)候提醒用戶是否需要退出整個(gè)軟件

(構(gòu)建成函數(shù)的方法)

    def closeEvent(self, event):        #關(guān)閉窗口觸發(fā)以下事件  
        a = QMessageBox.question(self, '退出', '你確定要退出嗎?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)      #"退出"代表的是彈出框的標(biāo)題,"你確認(rèn)退出.."表示彈出框的內(nèi)容
        if a == QMessageBox.Yes:  
            event.accept()        #接受關(guān)閉事件  
        else:  
            event.ignore()        #忽略關(guān)閉事件

(直接放入相關(guān)程序執(zhí)行完畢的后面的方法)

msg_box = QMessageBox(QMessageBox.Question, '退出', '你確定退出嗎?')  #退出表示彈出框標(biāo)題,"你確定退出嗎?"表示彈出框的內(nèi)容
msg_box.exec_()  #執(zhí)行彈出框
 
與確定退出的事件綁定可以參考第一種方法

2.信息提示框

這個(gè)彈框一般用戶給用戶展示一些基本信息

(構(gòu)建成函數(shù)的方法)

    def show_message(self):
        QMessageBox.information(self, "標(biāo)題", "我很喜歡學(xué)習(xí)python",
                                QMessageBox.Yes) #最后的Yes表示彈框的按鈕顯示為Yes,默認(rèn)按鈕顯示為OK,不填QMessageBox.Yes即為默認(rèn)

(直接放入相關(guān)程序執(zhí)行完畢的后面的方法)

msg_box = QMessageBox(QMessageBox.Information, '標(biāo)題', '我很喜歡python')
msg_box.exec_()

3.錯(cuò)誤提示框

這類的彈框一般用于用戶執(zhí)行了某些錯(cuò)誤操作而導(dǎo)致的,這類的錯(cuò)誤是必須要處理的,必須要提示用戶

(構(gòu)建成函數(shù)的方法)

    def show_message(self):
        QMessageBox.critical(self, "錯(cuò)誤", "系統(tǒng)錯(cuò)誤")

(直接放入相關(guān)程序執(zhí)行完畢的后面的方法)

msg_box = QMessageBox(QMessageBox.Critical, '錯(cuò)誤', '出現(xiàn)錯(cuò)誤')
msg_box.exec_()

4.警告提示框

這類的彈框一般提示用戶最好操作什么,警示用戶操作

(構(gòu)建成函數(shù)的方法)

    def show_message(self):
        QMessageBox.warning(self, "警告", "如果在不學(xué)習(xí),你會(huì)被淘汰", QMessageBox.Cancel)

(直接放入相關(guān)程序執(zhí)行完畢的后面的方法)

msg_box = QMessageBox(QMessageBox.Warning, '警告', '你再不學(xué)習(xí)就要被淘汰了')
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_()

不管上面的那種方法,都要導(dǎo)入以下依賴包

from PyQt5.QtWidgets import QMessageBox

關(guān)于彈出框的圖標(biāo)問(wèn)題,我查了很多資料,暫時(shí)只知道在相應(yīng)的主界面設(shè)計(jì)了QICon()后,彈出框的圖標(biāo)會(huì)與主界面的圖標(biāo)一樣

附:Python-PyQt5錯(cuò)誤提示彈框

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)#因?yàn)槔^承關(guān)系,要對(duì)父類初始化
#通過(guò)super初始化父類,__init__()函數(shù)無(wú)self,若直接QtWidgets.QWidget.__init__(self),括號(hào)里是有self的
        self.setGeometry(300, 300, 1000,1000)  # setGeometry()方法完成兩個(gè)功能--設(shè)置窗口在屏幕上的位置和設(shè)置窗口本身的大小。它的前兩個(gè)參數(shù)是窗口在屏幕上的x和y坐標(biāo)。后兩個(gè)參數(shù)是窗口本身的寬和高
        self.setWindowTitle(u'窗口')  # 設(shè)置窗體標(biāo)題,本行可有可無(wú)。
        self.button = QtWidgets.QPushButton(u'測(cè)試', self)  # 創(chuàng)建一個(gè)按鈕顯示‘測(cè)試'兩字
        self.button.move(300,300)
        self.button.clicked.connect(self.show_message)  # 信號(hào)槽

    def show_message(self):
        QtWidgets.QMessageBox.critical(self, "錯(cuò)誤", "系統(tǒng)錯(cuò)誤請(qǐng)關(guān)機(jī)重啟")
#內(nèi)容要長(zhǎng),太短會(huì)導(dǎo)致標(biāo)題顯示不全!
app=QtWidgets.QApplication(sys.argv)
window=MessageBox()
window.show()
sys.exit(app.exec_())

結(jié)果如下:

總結(jié)

原文鏈接:https://blog.csdn.net/weixin_47406082/article/details/122803143

欄目分類
最近更新