Всем привет. В PyQt не ас, только начинаю осваивать. И столкнулся с крайне странным поведением сигналов, которые не в состоянии побороть
Есть виджет QTableWidget с определённой иерархией, который постоянно перезаполняется в зависимости от действий пользователя (если быть точнее - реализован поиск посредством QLineEdit). Элементы таблицы кликабельные. Я подключаю Double-click вот так:
self.ui.tree.itemDoubleClicked.connect(self.connect)
А после узнаю, какой элемент был нажат:
item = self.ui.tree.currentItem()
Это прекрасно работает, только вот после перезаполнения таблицы, испускаемых сигналов на один и тот же элемент становится n+1
То есть, если мы перезаполним таблицу 5 раз, то по нажатию по элементу, 5 раз запустится self.connect.
Я перепробовал всё, что можно
Пытался использовать disconnect до перезаполнения, а после снова connect. Но что бы я не делал, он не коннектится к слоту второй раз.
В интернете нашёл про blockSignal(). Аля, до перезаполнения таблицы вызывать метод с True, а после с False, как-то так:
self.ui.tree.blockSignal(True)
<перезаписываем ...>
self.ui.tree.blockSignal(False)
Но и это ничуть не помогает.
Неужели такая забагованная реализация сигналов в фреймворке? Прошу помочь разобраться