看起来获取gtk.TreeView()
所选项目的唯一方法是实际点击它:
tree_selection = self.treeview.get_selection()
tree_selection.connect('changed', self.my_callback)
self.treeview.connect('row-activated', self.my_other_callback)
但是如果我在树视图中列出文件并需要“文件属性”菜单项呢? 或者是一个播放按钮,需要访问所选文件以将文件名传递给播放器类/方法?
加分问题:如何从my_other_callback
致电tree_selection.connect('changed', ...)
(似乎没有返回所有行数据......?)或换句话说,如何传递treeview
和{ {1}}回调?
答案 0 :(得分:1)
要选择树视图,请调用gtk.TreeSelection
对象的the get_selected_rows
method。您可以在任何可以访问树视图的地方调用它。
目前还不清楚为什么要将树视图传递给my_other_callback
,因为它是您班级的一种方法,可以self.treeview
访问它。但是如果你想要这样做,你可以添加树视图(或任何其他Python对象)作为connect
的附加参数:
tree_selection.connect('changed', self.my_other_callback, self.treeview)
对于如何调用回调的更精细控制,请使用lambda:
tree_selection.connect('changed', lambda *args: self.my_other_callback(self.treeview))
这允许您对多个信号使用相同的处理程序,而不必将处理程序声明为接受*args
。