2011-12-01 146 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