Я хочу обнаруживать всякий раз, когда выбор моего 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 ()
секунду спустя, я получу правильный выбор. Есть идеи, как поступить с этим?