Комбокс PyQT реагирует только на взаимодействие с пользователем - PullRequest
2 голосов
/ 27 апреля 2009

У меня есть список, в котором вы можете выбрать пользователей. Слева от этого находится комбинированный список с перечнем доступных групп, которые пользователь может поместить в него. Если пользователь входит в группу, для этой группы автоматически устанавливается комбинированный список. Я хочу сделать так, чтобы при изменении выбора группы он перемещал пользователя в эту группу. Я добавил это соединение:

QtCore.QObject.connect(self.GroupsBox, QtCore.SIGNAL("currentIndexChanged(QString)"), self.HandleGrouping)

Проблема в том, что, так как я буду выбирать разных пользователей в разных группах, каждый раз, когда я выбираю нового пользователя, параметр в выпадающем списке изменяется по умолчанию, и Qt регистрирует его как сигнал 'currentIndexChanged'.

Похоже, что нет способа запустить сигнал только при непосредственном взаимодействии пользователя с самим виджетом. Какие методы я могу использовать, чтобы обойти это?

1 Ответ

6 голосов
/ 27 апреля 2009

Поймать сигнал из QComboBox (activated(int index)) и обновить выбранного пользователя на основе этого. В вашей функции обработчика ничего не делайте, если выбранный индекс в выпадающем списке совпадает с группой, в которой находится выбранный пользователь.

Возможно, переместите ваш комбинированный список справа от списка пользователей, поскольку ваш порядок действий будет Выбор пользователя -> Выбор группы.

...