2011-08-25 36 views
2

我試圖找出如何刪除在PyGTK中樹狀排不選擇它。我可以先選擇行刪除行,但我的工作需要的應用程序能夠自動刪除行(無需用戶選擇行)。作爲一個簡單的功能,這似乎是我不能爲我的生活找出如何去做。我已經瀏覽了pygtk API和web,但沒有成功。刪除PyGTK的樹狀行編程

如果有人知道如何做到這一點還是有一個鏈接,可以給我在這個問題上跳躍開始一個網站,這將不勝感激

乾杯

克里斯

回答

2

可以更改底層模型,並通過其三種參考方法之一訪問任何行。說iter是行號:

model = gtk.TreeView.get_model() 
model.remove(iter) 

應該做的伎倆。

但你會得到更好的對listStore立即開展工作,而不由樹狀傳遞,它會更容易結束更快。

+0

就是這樣,但應當注意的是,ITER將是一個行的內部表示,經由poiter到存儲器,而路徑將包含行號。所以,如果他知道行號,路徑就是要走的路。但是,如果他處理移除項目,他將需要參考iters因爲樹模型的內容已被更改後的路徑和正常iters可能會變得無效。 (只是@克里斯羔羊一些額外的細節) – 2011-08-26 09:11:09

+0

謝謝布蘭登,這是對的。我正在考慮只訪問行(不是通過引用行和列的單元格),所以我沒有走得更遠。事實上,當內容發生變化時,行號(在迭代器中)也發生變化。 – Louis