GtkTreeView的行激活和光标变更信号
我有一个树形视图(treeview),我在监听两个信号:cursor-changed
和 row-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 界面设计器是无法做到这一点的。
不过,如果你想做的事情完全不同,请提供更多信息。