记录一下阶段性成果.
动态加载GtkTreeView项即当点击三角符号的时候,在展开子列表之前动态创建子列表。
这样做的好处是什么,当然大大的有了。试想,又几万条项的Tree,把它加载进GtkTreeView,是需要不少内存空间和时间的,给用户的体验也不会好。
其实,这一技术的实现又三个关键点:
Q1,如何让有子列表的项之前出现三角符号。
Q2,如何判断树中某一项的子列表项已经加载进去。
Q3,采用哪一个信号。
A1:在动态加载项的时候,先到数据库或其他存放树文件的地方读取,并判断是否又子项,若有,加进一个空的项,在展开项时,删掉就可以。
A2:我采用的是在GtkTreeStore中加入一列APP_USED_COLUMN的方法,类型是gboolen,默认是置FALSE。当子项都加载了后,置TRUE.
A3:靠,我在文档里看了看,猜着试的,采用"test-expand-row"信号。注意在其回调函数的末尾返回FALSE,否则不能展开三角符号。
阅读(1430) | 评论(0) | 转发(0) |