2011-12-01 140 views
3

有沒有一種方法可以創建一個信號,該信號在打開組合框時斷言並且用戶使用鍵盤上的上下箭頭選擇一個項目。到目前爲止,Qt4參考列出了只有在鼠標點擊或返回鍵擊後才激活的信號。我嘗試了突出顯示(int),並且只能用另一次鼠標點擊,但是當我使用向上/向下箭頭時,只有第一個被點擊的項目被檢索到。我認爲當前突出顯示的索引是通過self.ui.cb_dspBenchCmds.currentText()返回的索引。PyQt4 QComboBox信號和插槽

這裏的代碼片段:

class CmdRef(Qg.QMainWindow): 
    def __init__(self,parent = None): 
    ........ 
    Qc.QObject.connect(self.ui.cb_dspBenchCmds, Qc.SIGNAL("activated(int)"), self.chooseCmd) 
    ........ 

    def chooseCmd(self): 
     whichCmd = self.ui.cb_dspBenchCmds.currentText() 
     cmdDescription = self.dictDspCmds[str(whichCmd)] 
     self.ui.te_dspBenchOutput.setText(''.join(cmdDescription)) 

感謝

戴夫

回答

2

highlighted信號確實出現了一個你想要的。

你只需要利用傳遞的價值:

class CmdRef(Qg.QMainWindow): 
    def __init__(self, parent = None): 
     ... 
     self.ui.cb_dspBenchCmds.highlighted['QString'].connect(self.chooseCmd) 
     ... 

    def chooseCmd(self, whichCmd): 
     cmdDescription = self.dictDspCmds[str(whichCmd)] 
     self.ui.te_dspBenchOutput.setText(''.join(cmdDescription)) 
+0

感謝您的建議。那正是我想要的。出於某種原因,我必須使用舊式SIGNAL/SLOT語法,因爲使用「更新」樣式的「突出顯示」部分的屬性錯誤。 – Dave