我有一个名为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]
看起来很复杂,但这是因为您的选择可能包含许多行(这就是为什么它返回列表)并且因为树可以具有许多级别(这就是为什么它返回路径)的原因.
标签:gtk,python 来源: https://codeday.me/bug/20191031/1974633.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。