在签名期间在GtkTreeView中获取新选择

2024-09-29 21:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想检测我的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键并单击一行,当该行从deselected变为selected时,foo没有选择,当该行从selected变为deselected时,它被赋予了一个选择。不过,如果我稍后再调用get_selection().get_selected(),我会得到正确的选择。你知道怎么处理吗?在


Tags: 函数self信息gtkgetfooconnectall
1条回答
网友
1楼 · 发布于 2024-09-29 21:29:58

我不确定toggle-cursor-row做了什么(文档是令人沮丧的空白),但我认为这是处理错误的信号。在

相反,您应该连接到GtkTreeSelection ^{}信号。它应该处理所有的选择更改事件,因此您也不需要连接到其他信号。在

相关问题 更多 >

    热门问题