PyQt5學習筆記(十四):發(fā)送信號&自定義槽函數(shù)

在上一篇學習筆記中,我們重構了 ESC 和 ALT 鍵按下時觸發(fā)的信號槽過程,在本次筆記中我們可以自己決定在什么時候發(fā)送一個信號。本文由 Cescfangs 譯自 ZetCode pyqt5系列教程 并作適當修改。

在本次的學習筆記中,我們將通過信號槽的綁定,在statusBar()中提示哪一個按鈕被按下了,先上源代碼:

from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton


class exp(QMainWindow):

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

        self.initUI()

    def initUI(self):

        self.setGeometry(400, 400, 300, 300)
        self.setWindowTitle('sender')

        btn1 = QPushButton('Hello', self)
        btn2 = QPushButton('world', self)

        btn1.move(30, 150)
        btn2.move(150, 150)

        self.statusBar()

        btn1.clicked.connect(self.btnclicked)
        btn2.clicked.connect(self.btnclicked)

    def btnclicked(self):

        sender = self.sender()
        self.statusBar().showMessage(sender.text() + ' was clicked!')

if __name__ == '__main__':

    import sys
    app = QApplication(sys.argv)
    ex = exp()
    ex.show()
    sys.exit(app.exec_())

通過以上的代碼,我們創(chuàng)建了 'hello' 和 'world' 兩個按鈕,'hello' 按下的時候,左下角會提示 'hello was clicked!','world'按下的時候則提示 'world was clicked!'。

def btnclicked(self):    
    
    sender = self.sender()
    self.statusBar().showMessage(sender.text() + ' was clicked!')

自定義的槽函數(shù) btnclicked,它的作用是設置 statusBar() 的內(nèi)容為按鈕文本+ 'was clicked!',這個函數(shù)通過:

btn1.clicked.connect(self.btnclicked)
btn2.clicked.connect(self.btnclicked)

進行連接呈現(xiàn),發(fā)送的信號傳送到槽函數(shù)時,我們可以使用 sender() 來判斷是哪個部件發(fā)送了信號,從而做出對應的反饋,這也是自定義槽函數(shù)里經(jīng)常使用的一個技巧。

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

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

  • 信號和槽(Signals and Slots) Qt庫第一個認識到在幾乎所有情況下,程序員不需要或甚至不想知道所有...
    珞珈村下山閱讀 10,146評論 0 23
  • Qt學習 Qt是什么 Qt是一個跨平臺的C++圖形用戶界面庫,通過變以來跨平臺,實現(xiàn)一個Qt支持Unix,Linu...
    I踏雪尋梅閱讀 3,024評論 0 14
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • 認識這么一位姑娘,也算是同事吧。她93年出生,絲毫沒有90后的那種矯情和驕傲,穿著樸素,每次見到都是運動鞋,牛仔...
    云朵有幾種姿態(tài)閱讀 191評論 0 0
  • 今天起,開始我本年度的第一個主題閱讀——思維,其實關于邏輯思維、批判性思維的閱讀從2月份就已經(jīng)開始了,2月讀的那么...
    才少說閱讀 469評論 0 2

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