Python Combobox select item (not change current item) connect function

一般的網路文章範例都是有變更才觸發指定函式。

也就是

self.cboTest.currentIndexChanged.connect(self.cboTest3)

但是,如果你按下原設定而未改變值,那就並不會觸發cboTest3 function,

如果你的這個GUI介面希望按下原設定也可以呼叫函式,那就必須使用

self.cboTest.activated.connect(self.cboTest2)


之前,搜尋網路有人提過使用了另一個方法,

self.cboTest.view().pressed.connect(self.cboTest1)

雖然會觸發執行cboTest1 function,

但是如果你變更comboBox項目,此觸發函式得到的s1=self.cboTest.currentText()

會是前次選定的項目,而不是你現階段選取的值。可能pressed時的current index還尚未變更吧!

下圖是我測試的程序:


如果參考上方的程式
跟執行的結果(我的combobox裡面先放1,2,3,4,5五個項目,第一次選2, 第二次選4,

第三次依舊選4


依照執行順序, function cboTest1, cboTest3, cboTest2, 明顯cboTest1執行時,

currentText尚未變更。


留言

這個網誌中的熱門文章

C# 不規則陣列不定長度設定方法

多維陣列的Resize

C#利用DateTime估計程式執行時間