PyQt4 QComboBox信号与槽

3 投票
1 回答
1488 浏览
提问于 2025-04-17 07:31

有没有办法创建一个信号,当下拉框打开时,用户用键盘的上下箭头选择项目时会触发?到目前为止,Qt4的参考资料中列出的信号只有在鼠标点击或按下回车键后才会激活。我试过highlighted(int),但它只在另一次鼠标点击时有效,而当我使用上下箭头时,只能获取到第一次点击的项目。我原以为当前高亮的索引是通过self.ui.cb_dspBenchCmds.currentText()返回的。

这里有一段代码:

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))

谢谢

dave

1 个回答

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))

撰写回答