【问题标题】:Getting the row number of Gtk TreeView获取 Gtk TreeView 的行号
【发布时间】:2013-02-06 13:56:18
【问题描述】:

我有一个名为 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 是指向第 0、1 还是 2 行。

我希望我已经说清楚了。 我需要行索引而不是行迭代器。我如何获得行号?

【问题讨论】:

    标签: python gtk


    【解决方案1】:

    由于您处于浏览选择模式,因此您知道只有一个选定的行。然后,您可以获取第一个选定项目的路径

    path = iter.get_selected_rows()[0]
    

    然后,如果你的树只有一层(例如它不是嵌套树),你可以像这样从路径中获取索引

    index = path.get_indices()[0]
    

    看起来很复杂,但这是因为您的选择可能包含许多行(这就是它返回列表的原因)并且因为树可以有很多级别(这就是它返回路径的原因)。

    【讨论】:

    • 非常感谢您的回答!
    • @Charles-Brunet:PyGobject (GTK 3.10) 仍然如此吗?我收到此代码的警告“'LayerDataStore' 对象没有属性 'get_indices'”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    相关资源
    最近更新 更多