- PyQt編程快速上手
- 任路順
- 352字
- 2023-06-21 18:36:02
1.4.1 理解信號和槽機(jī)制
其實(shí)這個(gè)機(jī)制非常好理解,我們拿紅綠燈來做個(gè)類比。
當(dāng)紅燈信號發(fā)射后,行人就會(huì)停下;當(dāng)綠燈信號發(fā)射后,行人就會(huì)前進(jìn)。我們用red和green來表示信號,用stop()和go()函數(shù)來表示行人的動(dòng)作,這兩個(gè)函數(shù)也被稱為槽函數(shù)。也就是說,當(dāng)red信號發(fā)射后,stop()槽函數(shù)就會(huì)被調(diào)用;當(dāng)green信號發(fā)射后,go()槽函數(shù)會(huì)被調(diào)用。不過信號和槽只有在連接之后才可以起作用,連接方式如圖1-21所示。
在圖1-21中,widget就是PyQt中的控件對象,signal就是控件對象擁有的信號,connect()方法用于連接信號和槽,而slot是槽函數(shù)名稱。我們參考上面的紅綠燈例子,了解代碼中的連接方式:
traffic_light.red.connect(stop)
traffic_light.green.connect(go)

圖1-21 信號和槽的連接方式
red信號和stop()槽函數(shù)進(jìn)行連接,green信號和go()槽函數(shù)進(jìn)行連接,只有這樣連接后,發(fā)射的信號才可以調(diào)用相應(yīng)的槽函數(shù)。總結(jié)起來就一句話:連接后,信號發(fā)射,槽函數(shù)“啟動(dòng)”。
在connect()方法中傳入的是函數(shù)名。
推薦閱讀
- Learning ASP.NET Core 2.0
- Python進(jìn)階編程:編寫更高效、優(yōu)雅的Python代碼
- 深度學(xué)習(xí):算法入門與Keras編程實(shí)踐
- 程序員修煉之道:通向務(wù)實(shí)的最高境界(第2版)
- SQL Server 2016數(shù)據(jù)庫應(yīng)用與開發(fā)
- 零基礎(chǔ)Java學(xué)習(xí)筆記
- 持續(xù)輕量級Java EE開發(fā):編寫可測試的代碼
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)項(xiàng)目化教程
- Python 3 Object:oriented Programming(Second Edition)
- Mastering jQuery Mobile
- Visual C++開發(fā)寶典
- 百萬在線:大型游戲服務(wù)端開發(fā)
- Mastering PowerCLI
- Node.js實(shí)戰(zhàn):分布式系統(tǒng)中的后端服務(wù)開發(fā)
- ASP.NET Core and Angular 2