我想检测何时选择我的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()
稍后再打电话,我会得到正确的选择。知道如何处理这个吗?