GTK+2.0-----树构件教案.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GTK+2.0-----树构件 GTK+2.0 2008-12-13 15:05:02 阅读112 评论0 ??字号:大中小?订阅 ?????? 树构件一般用于显示分层结构的数据。树构件本身是G t k Tr e e I t e m构件类型的垂直容器。树构件本身和分栏列表构件( G t k C L i s t)差别并不大:它们都是由容器构件派生而来的,其中与容器相关的函数在树构件和分栏列表构件中同样起作用。差别在于树构件可以嵌套另外的树构件。下面简要介绍怎么使用树构件。 ?????? 树构件有自己的X窗口,缺省情况下是白色的背景。还有,绝大多数树的函数与分栏列表的函数工作方法是一样的。然而,树构件并不是从分栏列表构件派生而来的,因此,这些函数不可以互换。 创建新树构件 用下面函数创建树构件: GtkWidget *gtk_tree_new( void ); ????? 像分栏列表构件一样,当项目添加到树构件时,或当子树扩展时,树构件会自动扩展。因为这个原因,所以需要将树构件组装到一个滚动窗口构件中。滚动窗口构件的缺省尺寸是很小的,因此一般对滚动窗口要用g t k _ w i d g e t _ s e t _ u s i z e ( )函数设置它的缺省尺寸,以保证树构件足够大,可以看到其中的项目。 ????? 有了树构件后,就可以向其中添加项目了。现在,我们先介绍怎样创建树项构件: GtkWidget *gtk_tree_item_new_with_label( gchar *label ); 现在可以用下面的函数将树项构件添加到树构件中了: void gtk_tree_append( GtkTree *tree,GtkWidget *tree_item ); void gtk_tree_prepend( GtkTree *tree,GtkWidget *tree_item ); 注意,必须一次将全部树项添加到树构件中。没有与g t k _ l i s t _ * _ i t e m s ( )等价的函数。 添加一个子树 子树与树构件的创建方法类似。子树要加到一个树构件的树项下面,使用以下函数: void gtk_tree_item_set_subtree( GtkTreeItem *tree_item,GtkWidget *subtree ); 在子树添加到一个树项之前或之后都不需要对子树调用g t k _ w i d g e t _ s h o w ( )函数。然而,在调用g t k _ t r e e _ i t e m _ s e t _ s u b t r e e ( )之前,必须将树项添加到一棵父树上。这是因为: 从技术上来说,子树的父树并不是拥有它的树项构件( G t k Tr e e I t e m),而是树项所在的树。 当将子树添加到树项时,一个“+”或“-”符号会出现在旁边,用户可以点击它“展开”或“折叠”子树─也就是显示或隐藏子树。缺省状态树项是折叠起来的。注意,在折叠树项时,所有子树的选中状态仍然保持原有状态,这可能是用户不希望看到的。 处理选中的列表 与分栏列表构件G t k C L i s t一样,树构件类型也有一个选择域。可以用下面的函数设置选择模式以控制树构件的行为: void gtk_tree_set_selection_mode( GtkTree *tree,GtkSelectionMode mode ); 与各种选择模式相关的语义在分栏列表构件G t k C L i s t中有详细的介绍。与G t k C L i s t构件一样,当选择列表项或取消选择时,会引发s e l e c t _ c h i l d、u n s e l e c t _ c h i l d、和s e l e c t i o n _ c h a n g e d信号。然而,要使用这些信号,需要知道树构件怎样引发信号,以及如何查找选中的列表项。 所有的树构件都有自己的X窗口,它们能够接受事件,例如鼠标点击。然而,要让树构件的选择类型为G T K _ S E L E C T I O N _ S I N G L E和G T K _ S E L E C T I O N _ B R O W S E的树能够正常动作,选中项的列表必须是针对树构件层次上最顶层的(也就是所谓的“根”树)。 因而,除非你已经知道它是“根”树,否则,直接访问任意一个树构件的选择状态并不是什么好主意。应该使用GTK_TREE_SELECTION (Tr e e )宏,它将给出一个指向“根”树的选择列表的指针。当然,如果选择模式是G T K _ S E L E C T I O N _ M U LT I P L E(可以多选),这个选择列表也包含了其他不在所涉及

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档