2013-03-17 105 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