首頁  >  文章  >  後端開發  >  PyQt5每天必學之彈出訊息框

PyQt5每天必學之彈出訊息框

不言
不言原創
2018-04-19 11:23:206526瀏覽

這篇文章主要為大家詳細介紹了PyQt5每天必學之彈出訊息框,具有一定的參考價值,有興趣的小夥伴們可以參考一下

預設情況下,如果我們點擊標題欄上的X 按鈕,QWidget 關閉。有時候,我們需要改變這個預設行為。例如,如果我們有一個文件,要在編輯器中打開,我們可以先顯示一個訊息框,確認打開與否的操作。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

当我们点击应用程序窗口的关闭按钮,该程序显示一个确认信息框。

作者:我的世界你曾经来过
博客:http://blog.csdn.net/weiaitaowang
最后编辑:2016年7月29日
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox

class Example(QWidget):

 def __init__(self):
  super().__init__()

  self.initUI()

 def initUI(self):

  self.setGeometry(300, 300, 300, 220)
  self.setWindowTitle('消息盒子')  
  self.show()

 def closeEvent(self, event):

  reply = QMessageBox.question(self, '信息', '确认退出吗?', 
   QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

  if reply == QMessageBox.Yes:
   event.accept()
  else:
   event.ignore()

if __name__ == '__main__':

 app = QApplication(sys.argv)
 ex = Example()
 sys.exit(app.exec_())

如果我們關閉 QWidget控件,將產生 QCloseEvent 事件。修改控制項特性我們需要重新實作 closeEvent() 事件處理程序。

 reply = QMessageBox.question(self, '信息', '确认退出吗?', 
   QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

我們顯示一個訊息框,它有兩個按鈕:Yes和No。第一個字串出現在標題列。第二個字串是對話方塊中顯示的訊息文字。第三個參數指定彈出的對話框中的按鈕組合。最後一個參數是預設按鈕,它是具有初始鍵盤焦點的按鈕。返回值被儲存在reply 變數中。

 if reply == QMessageBox.Yes:
   event.accept()
  else:
   event.ignore()

在這裡我們使用 if 測試傳回值。如果我們點擊 Yes 按鈕,我們接受了按鈕控制的關閉並執行應用程式的終止事件。否則,我們忽略關閉事件。

程式執行後點選右上角的x 彈出確認退出訊息盒子

PyQt5每天必學之彈出訊息框PyQt5每天必學之彈出訊息框

#相關推薦:

PyQt5實現下載進度條效果

PyQt5每天必學之進度條效果

PyQt5每天必學之QSplitter實現視窗分隔

#

以上是PyQt5每天必學之彈出訊息框的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn