2013-02-06 37 views
2

的行數我有一個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() 

此時它返回指向當前選定行的tree iter。這很好。不過,我很想知道它是否指向第0,1或2行。

我希望我已經說清楚了。 我需要行索引而不是行iter。如何獲得行號?

回答

3

由於您處於BROWSE選擇模式,因此您知道只有一個選定的行。然後,你可以得到第一個選擇項做

path = iter.get_selected_rows()[0] 

然後路徑,如果你的樹只有一個級別(例如,它是不是一個嵌套的樹狀結構),你可以從這樣

路徑獲得指數
index = path.get_indices()[0] 

它看似複雜,但是這是因爲你的選擇可能包含許多行(這就是爲什麼它返回一個列表),因爲樹可以有多個級別(這就是爲什麼它返回一個路徑)。

+0

非常感謝您的回答! – Nik

+0

@ Charles-Brunet:這對於PyGobject(GTK 3.10)是否仍然如此?我得到警告「'LayerDataStore'對象沒有屬性'get_indices'」與此代碼。 – tobias47n9e