GtkTreeView的行激活和光标变更信号

1 投票
2 回答
4054 浏览
提问于 2025-04-15 19:13

我有一个树形视图(treeview),我在监听两个信号:cursor-changedrow-activated。问题是,要触发行激活(row-activate),我首先得点击一下那一行(这时会触发 cursor-changed),然后再双击,这样总共需要三次点击。

有没有办法用两次点击就能响应这两个信号呢?

2 个回答

3

当你单击同一行(已经选中的行)时,cursor-changed信号会被触发。不过,当你双击一行时,不管这行之前是否被选中,row-activated信号都会被触发。所以,你不需要点击三次就能激活一行。

正如Jon提到的,你应该连接到选择的changed信号,而不是cursor-changed

4

你想要实现的目标不是很清楚。我猜测你是想在用户更改树形视图的选择时做出响应。

如果是这样的话,可以连接到 [changed][1] 信号,使用 gtk.TreeSelection

selection = treeview.get_selection()
selection.connect('changed', self.on_treeview_selection_changed)

据我所知,使用 glade 界面设计器是无法做到这一点的。

不过,如果你想做的事情完全不同,请提供更多信息。

撰写回答