Я хочу обнаруживать всякий раз, когда меняется выбор моего gtk.TreeView
, и, когда это происходит, вызывать функцию с этой информацией.До сих пор я нашел единственный способ сделать это - присоединить ко всем этим сигналам:
...
self.sitterView.connect("cursor-changed", self.selectionChanged)
self.sitterView.connect("unselect-all", self.selectionChanged)
self.sitterView.connect("toggle-cursor-row", self.selectionChanged)
self.sitterView.connect("select-all", self.selectionChanged)
...
def selectionChanged(self, treeview):
foo(self.sitterView.get_selection().get_selected())
Однако, похоже, что выбор, который я получаю из обратного вызова, "задерживается".То есть, он показывает выбор после завершения предыдущего обратного вызова.Например, если я постоянно нажимаю CTRL + щелчок по строке, когда строка переходит от невыбранной к выделенной, foo не предоставляется выбор, а когда строка переходит от выделенной к отмененной выборке, она получает выбор.Если я позвоню get_selection().get_selected()
секунду позже, я получу правильный выбор.Есть идеи как с этим бороться?