获取Gtk TreeView的行号
问题内容:
我有一个名为 MyTree 的GTk TreeView, 其中 包含以下数据,如下所示:
DTime ATime Transfer Platform
14:30 15:20 0 2a
14:50 15:40 0 14b
15:00 16:00 2 3a
如您所见,我有3行4列。因此,我需要获取选定的行。我这样做是
selection = MyTree.get_selection()
selection.set_mode(Gtk.SelectionMode.BROWSE)
model, iter = selection.get_selected()
此时,它返回指向当前选定行的树iter。一切都很好。但是我有兴趣知道iter是否指向第0、1或2行。
我希望我已经说清楚了。 我需要行索引,而不是行iter。 如何获得行号?
问题答案:
由于您处于“浏览”选择模式,因此知道只有一行被选中。然后,您可以获取到第一个选定项目的路径
path = iter.get_selected_rows()[0]
然后,如果您的树只有一个级别(例如,它不是嵌套树),则可以从这样的路径获取索引
index = path.get_indices()[0]
看起来很复杂,但这是因为您的选择可能包含许多行(这就是为什么它返回列表)并且因为树可以具有许多级别(这就是为什么它返回路径)的原因。