2013-05-12 48 views
1

我有了這個層次中GTKTreeView越來越GtkTressStore父母從孩子蟒蛇

-Title 
---Header 
------numbers a 
------numbers b 
------numbers c 

當我點擊了一些我想要打印頭

爲了得到一個孩子,我的父使用類似

number_parent=GtkTreeStore.get_iter_first() 
model=GTKTreeView.get_model() 
parent=model.get_value(number_parent,0) 

但這只是打印出標題而不是標題。

我試圖

value=GtkTreeStore.get_iter(path) 
GtkTreeStore.get_value(value,0) 

其中路徑是一個元組,如(0:0:3)

但這只是打印出來的數量。

有沒有辦法讓我得到標題?

+0

從你描述的模型看起來,'Header'是'Title'的一個孩子,第一個iter將指向'Title'。 'model.get_value(model.iter_children(number_parent),0)'給了你什麼? – 2013-05-12 12:36:59

+0

好吧,我試過你的方法another.anon.crowd它的作品。但如果我說頭1和頭2.它只打印頭1,即使我點擊頭2的孩子。 – zeref 2013-05-12 14:04:43

+0

是的,這是預期的結果。當你得到第一個iter時,你會得到'Title'。現在'標題'將有孩子'Header1','Header2'等等(假設你提到的上述結構重複)。你必須通過調用'iter_next'來遍歷其他的'Headers#'。如果你有路徑,你可以將它轉換爲字符串,並刪除最後一個條目以獲得父路徑,即清除直到':'反向,例如。 '0:0:1'→0:0→1:2:3→1:2。你可以從字符串中得到它,它會給出所需的'Header#'。順便說一句,你在做這一切?在一些信號回調? – 2013-05-13 18:03:12

回答

0

OK我得到感謝解決another.anon.coward

我決定使用get_path方法。

path=GtkTreeStore.get_path(name) 
path_value=str(path) 

我發現字符串切片路徑直接不起作用。

number_title_path=GtkTreeStore.get_iter(path_value[:1]) 
number_header_path=GtkTreeStore.get_iter(path_value[:3]) 
number_path=GtkTreeStore.get_iter(path_value) 

設置模式

model=GtkTreeView.get_model() 
number_title=model.get_value(number_title_path,0) 
number_header=model.get_value(number_header_path,0) 
number=model.get_value(number_path,0) 

這一切都是在 'on_treeview1_button_press_event' 信號事件來完成。

所以當我點擊數字時,我會找回標題和標題。