Метод триггера QTreeView selectionChanged - PullRequest
0 голосов
/ 26 ноября 2018

Я начал использовать виджет QTreeView для представления своих сущностей в базе данных.Я хочу реагировать на событие выбора новой сущности в древовидном представлении, чтобы я мог обновить состояние других виджетов, чтобы они соответствовали текущему выбору древовидного представления.Документация показывает два варианта для этого.http://doc.qt.io/qt-5/qabstractitemview.html#selectionChanged и http://doc.qt.io/qt-5/qabstractitemview.html#currentChanged, но я не могу подключиться к ним традиционным

self.treeView_shot.selectionChanged.connect(self.update_RenderView)

способом, известным мне при работе с подходом на основе виджетов.Я предполагаю, что это не работает, потому что selection / currentChanged - это не сигналы, а то, что в документации называется [virtual protected slot].Как бы вы связали изменение выбора с моим методом update_RenderView и передали ему выбранный элемент?

1 Ответ

0 голосов
/ 26 ноября 2018

Вы хотите получить представление selectionModel и затем подключиться к его selectionChanged сигналу.Примерно так должно работать:

self.treeView_shot.selectionModel().selectionChanged.connect(self.YOURSLOT)

Ваш слот получит два QItemSelection параметра:

def YOURSLOT (selected, deselected):
  • selected - это коллекция QModelIndex эс;это элементы , выбранные во время мероприятия.
  • deselected - коллекция QModelIndex es;эти элементы отменены во время события.

Кроме того, вы всегда можете запросить свойство QTreeView selectedIndexes, чтобы получить список все выбранные на данный момент предметы.

...