Поле со списком PyQT реагирует только на взаимодействие с пользователем

StackOverflow https://stackoverflow.com/questions/794813

  •  18-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top