2013-03-17 153 views
4

我想實現一個處理大量行的GUI,我需要在Linux中使用GTK數百萬行的GUI

我開始看看帶有列表的GTKTreeView,但我不認爲將數百萬行直接添加到該小部件將有助於使GUI不會減慢應用程序。

你知道是否有一個GTK窗口小部件已經就位這個問題,或者我必須處理我自己的窗口框架,必須顯示這些行?最後我會直接使用GtkDrawingArea(基本上是編寫一個新的小部件)來編寫數據。

任何關於任何GTK主題或項目的建議我可以看作是我的研究的起點?

+2

按照推薦的[here](https://mail.gnome.org/archives/gtk-app-devel-list/2007-June/msg00003.html),您可以使用'gtk_tree_view_column_set_cell_data_func()'。 – 2013-03-17 11:36:57

+0

嗨弗雷德裏克!感謝您的答覆。我認爲你的答案是正確的,因爲我可以隨時撥打數據。謝謝你指出我。附:如果你不迴應評論,我可能會接受你的回答,正如我認爲的那樣。 – 2013-03-17 12:13:04

+0

謝謝:)現在我的評論沒有足夠的材料來回答恐怕,但是如果你編寫了一些使用這個函數的代碼,並最終遇到了一個你想問的問題,那麼你只需要更新你的用該代碼提問以獲得更詳細的答案。 – 2013-03-17 12:19:36

回答

3

正如評論中所建議的那樣,您可以使用Cell Data Func,並在控制下獲取顯示的數據。但我還有另一個想法:數百萬行比遠遠超過人類用戶可以看到和理解的任何數量的信息。所以也許一個更好,更實用和更友好的解決方案,就是以一種讓用戶更容易導航的方式來顯示數據。

想象一下,打開一個巨大的層次結構,向下滾動,並忘記什麼是您打開的頂級項目。

可能的解決方案示例:有一個組合框允許選擇某個過濾器或類別,這可以將數據量減少到合理的數量,用戶可以更輕鬆地導航並根據需要進行思維模型。

注意:據我所知,GtkTreeView不支持同時排序/過濾和拖放操作,所以如果你想使用這兩個功能,我建議你使用現有的拖拽n-drop,拖放功能(否則手工實現非常複雜)並實現您自己的分類/過濾。

+0

+1注意這裏也可能有一個設計問題。 – 2013-05-30 07:58:20