Получить новый выбор в GtkTreeView во время сигнала

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

5
задан gpoo 23 January 2013 в 06:39
поделиться