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