PyGTK 如何“按需加载”数据到树视图
我正在使用 PyGTK TreeView (作为列表)来存储我的数据。有没有办法通过浏览列表来加载更多数据按需。
例如:
我有一个数据库表,其中有 200 000 条记录。在应用程序启动时,从表中加载 200 条记录。当我滚动时将更多数据下载到树视图。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我相信您可以执行以下操作:
向您的模型添加空行,我相信您应该使用 GtkListStore
为树形视图单元渲染器定义一个 数据函数。
在数据函数中检查当前模型行是否已加载,如果没有则从 SQL 加载。我想你可以在这里使用兑现并一次加载多于一行。
以下是如何设置数据功能的示例:
...
希望这有帮助,问候
I believe you could do following:
Add empty lines to your model, I believe you should be using GtkListStore
For the treeview cell renderer define a data function.
In the data function check if current model row is loaded and load it from SQL if it's not. I guess you can use cashing here and load more then one row at once.
Below is an example of how to set up the data function:
....
hope this helps, regards
这是我如何实现树视图(列表)的按需加载
我的 Gtk.TreeView 是 Gtk.ScrolledWindow 的子级(一切都是用空地构建的,但这并不重要)
我已将树视图渲染设置为 Serge 说:
要处理的函数:
现在在“pre-last”(从底部第二个)时加载新数据row 可见,scrollBar 几乎位于底部。就我而言,睡眠用于在 gtk.widgets 刷新时暂停。
通过键盘导航、鼠标拖动滚动条或鼠标单击滚动条按钮来工作
希望这会对某人有所帮助
Here is how i managed to achieve load-on-demand for treeview (list)
My Gtk.TreeView is a child of Gtk.ScrolledWindow (everything is built with glade, but that is not important)
I've set up my treeview rendering as Serge said:
Function to handle:
Now new data is loaded when "pre-last" (second from bottom) row is visible and scrollBar is almost at bottom. In my case, sleep is used to pause while gtk.widgets are refreshed.
Works by keyboard navigation, by mouse drag of scrollBar or mouse clicking on scrollbar button
Hope this will help someone