PyQt5學(xué)習(xí)筆記(四):退出按鈕

當我們關(guān)閉一個應(yīng)用時,最常用的方式可能是點擊窗口右上方的 X,但其實我們也可以設(shè)置一個退出按鈕來實現(xiàn)這個功能。這里用到了信號和槽的概念,也是Qt最核心的機制,在以后的筆記中會詳細解釋。
本文由Cescfangs 譯自ZetCode pyqt5系列教程 并作適當修改。

我們會用到下面的構(gòu)造函數(shù)來創(chuàng)建一個QpushButton

QPushButton(string text, QWidget parent = None)

text將會顯示在按鈕上,我們把按鈕放在parent這個父部件上,在這個 App 里用的是Qwidget,大多數(shù)部件都是繼承自父部件而來的,但有些部件沒有父部件,這些就是頂級窗口。

以下是源代碼:

import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication
from PyQt5.QtCore import QCoreApplication


class Exp(QWidget):

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

    def initUI(self):

        qtn = QPushButton('Quit', self)
        qtn.resize(qtn.sizeHint())
        qtn.clicked.connect(QCoreApplication.quit)
        qtn.move(40, 50)

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

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

通過以上的代碼,我們創(chuàng)建了一個退出按鈕,按下這個按鈕程序就會自動結(jié)束。

主界面
from PyQt5.QtCore import QCoreApplication

要使用quit首先要調(diào)用QCoreApplication

qtn = QPushButton('Quit', self)

創(chuàng)建一個按鈕,qtnQPushButton類的一個實例,QPushButton的第一個參數(shù)是按鈕上的文字,第二個參數(shù)指明這個按鈕的父部件,在這里是Exp。

qtn.clicked.connect(QCoreApplication.quit)

Qt 也好,Pyqt 也好,處理事件的核心機制都是信號槽。當我們按下這個按鈕時,就釋放了clicked這個信號,槽可以是 Qt 或者 Python(只要能調(diào)用就行)。QCoreApplication包含了主要的事件循環(huán),它可以處理傳遞任何事件。clicked信號連接了quit這個方法,從而結(jié)束進程。
整個過程由兩個對象完成,發(fā)射器和接收器,按鈕是發(fā)射器,這個應(yīng)用是接收器。

動畫效果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容