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

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

Благодарность

Дэйв


person Dave    schedule 01.12.2011    source источник


Ответы (1)


Сигнал 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))
person ekhumoro    schedule 02.12.2011
comment
Спасибо за предложение. Это сделало именно то, что я хотел. По какой-то причине мне пришлось использовать синтаксис SIGNAL/SLOT старого стиля из-за ошибки атрибута для выделенной части с использованием более нового стиля. - person Dave; 05.12.2011