官术网_书友最值得收藏!

  • 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ù)名。

主站蜘蛛池模板: 汾阳市| 叙永县| 富宁县| 安顺市| 沾化县| 安多县| 原阳县| 湛江市| 观塘区| 桐柏县| 象州县| 家居| 景德镇市| 孙吴县| 潍坊市| 依安县| 永新县| 厦门市| 金坛市| 镇赉县| 紫云| 博客| 岳阳县| 运城市| 顺义区| 田东县| 桐乡市| 神木县| 河西区| 仙居县| 沅江市| 哈密市| 中超| 六安市| 开阳县| 游戏| 湖州市| 荆州市| 彩票| 绥滨县| 介休市|