PyQt5學習筆記(五):彈出對話框請求確認

在很多應用中迹卢,如果要操作一個關(guān)鍵的功能辽故,比如退出應用、刪除文件的時候婶希,往往會有消息彈出窗口請求確認榕暇,讓我們用PyQt彈出消息吧!本文由Cescfangs 譯自ZetCode pyqt5系列教程 并作適當修改喻杈。

先上源代碼:

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

class exp(QWidget):

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

    def initUI(self):

        self.setGeometry(200, 300, 400, 400)
        self.setWindowTitle('Quit')
        self.show()

    def closeEvent(self, event):
        reply = QMessageBox.question(self, 'Message', 'You sure to quit?',
                                     QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

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

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = exp()
    sys.exit(app.exec_())

當我們關(guān)閉一個窗口時,就會觸發(fā)一個QCloseEvent的事件狰晚,正常情況下會直接關(guān)閉這個窗口筒饰,但是我們不希望這樣的事情發(fā)生,所以我們需要重新定義QCloseEvent

 def closeEvent(self, event):
        reply = QMessageBox.question(self, 'Message', 'You sure to quit?',
                                     QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

我們通過QMessageBox創(chuàng)建了一個帶有'Yes'和'No'的對話框壁晒,括號內(nèi)的第一個字符(Message)會顯示在信息窗口的上方瓷们,第二個字符(You sure to quit?)則是出現(xiàn)在信息窗口的正文中,第三個參數(shù)則說明了兩個按鈕在對話框上的布置谬晕,最后一個參數(shù)確定了默認選項碘裕,也就是彈出對話框的時候,鍵盤的默認焦點所在攒钳。最后返回的結(jié)果會存儲在reply中帮孔。

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

如果我們按下了'Yes',那么這個窗口就會被關(guān)閉不撑,如果我們按下的是'No'文兢,那么系統(tǒng)會忽視我們點擊‘X’的這個事件。

對話框
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末焕檬,一起剝皮案震驚了整個濱河市姆坚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌实愚,老刑警劉巖兼呵,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異腊敲,居然都是意外死亡萍程,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門兔仰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茫负,“玉大人,你說我怎么就攤上這事乎赴∪谭ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵榕吼,是天一觀的道長饿序。 經(jīng)常有香客問我,道長羹蚣,這世上最難降的妖魔是什么原探? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮顽素,結(jié)果婚禮上咽弦,老公的妹妹穿的比我還像新娘。我一直安慰自己胁出,他們只是感情好型型,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著全蝶,像睡著了一般闹蒜。 火紅的嫁衣襯著肌膚如雪寺枉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天绷落,我揣著相機與錄音姥闪,去河邊找鬼。 笑死砌烁,一個胖子當著我的面吹牛筐喳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播往弓,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼疏唾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了函似?” 一聲冷哼從身側(cè)響起槐脏,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎撇寞,沒想到半個月后顿天,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡蔑担,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年牌废,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啤握。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡鸟缕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出排抬,到底是詐尸還是另有隱情懂从,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布蹲蒲,位于F島的核電站番甩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏届搁。R本人自食惡果不足惜缘薛,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卡睦。 院中可真熱鬧宴胧,春花似錦、人聲如沸么翰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浩嫌。三九已至檐迟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間码耐,已是汗流浹背追迟。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留骚腥,地道東北人敦间。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像束铭,于是被迫代替她去往敵國和親廓块。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 1契沫、窗體 1带猴、常用屬性 (1)Name屬性:用來獲取或設置窗體的名稱,在應用程序中可通過Name屬性來引用窗體懈万。 ...
    Moment__格調(diào)閱讀 4,562評論 0 11
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程拴清,因...
    小菜c閱讀 6,451評論 0 17
  • 工欲善其事必先利其器,作為PC客戶端開發(fā)会通,Visual Studio是我們每天都要使用的開發(fā)工具口予,IDE提供了非常...
    小豬啊嗚閱讀 4,654評論 1 10
  • **1.document.write(""); 輸出語句 ****2.JS中的注釋為// ****3.傳統(tǒng)的HTM...
    reallychao閱讀 1,718評論 1 40
  • 周圍和我有共同興趣的朋友也變得越來越少,我漸漸返璞歸真涕侈,關(guān)注書本沪停。而他們追著新劇,談論著月薪工作裳涛,房子保險木张,老公孩...
    千尋瀑日記閱讀 290評論 0 0