2010-06-13 66 views
1

我有一個項目對象的列表,我在GtkTreeView中顯示。我試圖在用戶雙擊TreeView中的項目行時打開一個包含項目詳細信息的對話框。如何使用我自己的模型核心化gtk.ListStore項目

現在,我通過get_selection()從TreeView(它是項目的名稱)中獲取選定的值,然後在我自己的列表中通過名稱搜索該項目,以使用我自己的模型來選擇該項目。

但是,這並不完全正確(此外,它假定項目的名稱是唯一的),我想知道是否有更好的方法來做到這一點。

回答

1

我最終做的是擴展gtk.ListStore並使用我的自定義列表。我還劫持了append()方法,以便它不僅會將[str,str等]追加到ListStore中,而且還將擴展ListStore的類的自定義列表屬性中的實際模型。

然後,當用戶雙擊該行時,我通過ListStore中的行索引獲取請求的模型,該索引對應於自定義列表中的模型索引。

1

不適用於默認型號。您可以嘗試使用專門編寫的Py-gtktree models在後端和演示文稿中使用相同的對象。

順便說一句,它的文檔概述了使用標準模型(即不使用Py-gtktree)的替代方法,但我不會稱它爲優雅。

相關問題