PyQt5每天必學(xué)之關(guān)閉窗口
最簡單的關(guān)閉一個窗口的方法是點擊標(biāo)題欄上的 x 標(biāo)志。但是,在下面的例子中,我們將展示如何通過編程來控制關(guān)閉窗口。我們將使用PyQt5的信號/槽。
以下是我們在例子中使用到的 QPushButton 控件的構(gòu)造方法。
QPushButton(string text, QWidget parent = None)
text 參數(shù)是在按鈕上顯示的文本。parent 要將按鈕控件放在哪里。在下面的例子中我們要將按鈕控件放到 QWidget里。一個應(yīng)用程序的窗口控件可以形成一個分層結(jié)構(gòu),在這個層次,大多數(shù)控件有他們的父控件,沒有父控件的控件即是頂層窗口。
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 這個程序創(chuàng)建一個退出按鈕。當(dāng)我們按下按鈕,應(yīng)用程序?qū)⒔K止。 作者:我的世界你曾經(jīng)來過 博客:http://blog.csdn.net/weiaitaowang 最后編輯:2016年7月29日 """ import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton from PyQt5.QtCore import QCoreApplication class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): btn = QPushButton('退出', self) btn.clicked.connect(QCoreApplication.instance().quit) btn.resize(btn.sizeHint()) btn.move(50, 50) self.setGeometry(300, 300, 300, 220) self.setWindowTitle('退出按鈕') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
在這個例子中,我們創(chuàng)建了一個退出按鈕。當(dāng)點擊按鈕,應(yīng)用程序終止。
from PyQt5.QtCore import QCoreApplication
我們需要使用 QtCore 模塊中的 QCoreApplication 對象
btn = QPushButton('退出', self)
我們創(chuàng)建了一個按鈕,按鈕是 QPushButton 類的一個實例。構(gòu)造函數(shù)的第一個參數(shù)是按鈕的標(biāo)簽。第二個參數(shù)是父窗口控件。父窗口控件是Example 控件,這是一個繼承自 QWidget 的類。
btn.clicked.connect(QCoreApplication.instance().quit)
該事件處理系統(tǒng)建立在 PyQt5 的信號/槽的機(jī)制上。如果我們點擊該按鈕,按鈕將會發(fā)出信號,單擊信號連接到 quit() 方法使應(yīng)用程序終止。
槽可以是 Qt 的槽也可以是 Python 的任何調(diào)用。 QCoreApplication 包含主事件循環(huán);它處理和調(diào)度所有事件。instance()方法為我們提供了其當(dāng)前實例。注意,區(qū)分 QCoreApplication 與 QApplication。
發(fā)送器和接收器:在通信的兩個對象之間進(jìn)行。發(fā)送器是按鈕,接收器是應(yīng)用對象。
概念有些混亂,這里整理一下:
按鈕(btn)是發(fā)送器。點擊(clicked)按鈕后,發(fā)出點擊信號。點擊信號連接(connect)到槽(可以是 Qt 的槽也可以是 Python 的任何調(diào)用)。
在我們的例子中是Qt的槽,QCoreApplication處理和調(diào)度所有Qt事件,調(diào)度出instance(這個實例(接收器))的 quit 事件。
大概就這個意思了,慢慢理解吧!
程序執(zhí)行后,點擊退出按鈕,將關(guān)閉程序。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python?pyecharts實時畫圖自定義可視化經(jīng)緯度熱力圖
這篇文章主要為大家介紹了Python?pyecharts實時畫圖自定義經(jīng)緯度熱力圖實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Python警察與小偷的實現(xiàn)之一客戶端與服務(wù)端通信實例
這篇文章主要介紹了Python警察與小偷的實現(xiàn)之一客戶端與服務(wù)端通信實例,并附有難點及易錯點的分析與說明,需要的朋友可以參考下2014-10-10Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)實現(xiàn)優(yōu)先級隊列的方法示例
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)實現(xiàn)優(yōu)先級隊列的方法,結(jié)合實例形式分析了Python中基于給定優(yōu)先級進(jìn)行隊列元素排序的相關(guān)操作技巧,需要的朋友可以參考下2018-02-02Python基于Tkinter模塊實現(xiàn)的彈球小游戲
這篇文章主要介紹了Python基于Tkinter模塊實現(xiàn)的彈球小游戲,涉及Python圖形繪制、數(shù)值計算、判斷等相關(guān)操作技巧,需要的朋友可以參考下2018-12-12