PyQt4 QComboBox Сигналы и слоты - PullRequest
       26

PyQt4 QComboBox Сигналы и слоты

3 голосов
/ 02 декабря 2011

есть способ создать сигнал, который устанавливается, когда открывается поле со списком, и пользователь использует стрелки вверх-вниз на клавиатуре для выбора элемента.До сих пор в справочнике Qt4 перечислены сигналы, которые активируются только после нажатия кнопки мыши или возврата.Я пробовал выделенный (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))

спасибо

Дэйв

1 Ответ

2 голосов
/ 02 декабря 2011

Сигнал 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))
...