Linux C从入门到精通 第2版02组装盒构件.pptVIP

Linux C从入门到精通 第2版02组装盒构件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Logo Logo Logo Logo Logo Logo Logo Logo Logo Logo 组装盒构件 本讲大纲: 组装盒的原理 盒的细节 组装盒程序 用表组装 表组装程序 组装盒的原理 但当你想要放置更多的构件到一个窗口中时,如何控制各个构件的定位呢?这时就要用到组装(Packing)了。 组装盒的原理 多数组装是通过创建一些“盒(boxes)”来达成的,这是些不可见的构件容器,它们有两种形式:一种是横向盒(horizontalbox),一种是纵向盒(verticalbox)。当我们组装构件到横向盒里时,这些构件就依着我们调用的顺序左至右或右到左水平地插入进去。在纵向盒里,则顶部到底部或相反地组装构件,你可以使用任意的盒组合,比如盒套盒或者盒挨着盒,用以产生你想要的效果。 要创建一个新的横向盒,调用gtk_hbox_new(),对于纵向盒,用gtk_vbox_new()。gtk_box_pack_start()和gtk_box_pack_end()函数用来将对象组装到这些容器中。gtk_box_pack_start()将对象从上到下组装到纵向盒中,或者左到右组装到横向盒中。gtk_box_pack_end()则相反,下到上组装到纵向盒中,或者右到左组装到横向盒中。使用这些函数允许我们调整自己的构件向左或向右对齐,同时也可以混入一些其它的方法来达到我们想要的设计效果。在我们的示例中多数使用gtk_box_pack_start()。被组装的对象可以是另一个容器或构件。事实上,许多构件本身就是容器,包括按钮,只不过我们通常在按钮中只放入一个标签。 通过使用这些调用,GTK就会知道要把构件放到哪里去,并且会自动做调整大小及其它美化的事情。至于如何组装你的构件这里还有一些选项。正如你能想到的,在放置和创建构件时,这些方法给了我们很多的弹性。 盒的细节 由于存在这样的弹性,所以在一开始使用GTK中的组装盒(packingbox)的时候会有点让人迷惑。这里有许多选项,并且它们不容易一眼看出是如何组合在一起的。然而到最后,这里基本上只有五种不同的风格。 每一行包含一个带有若干按钮的横向盒。gtk_box_pack是组装每个按钮到横向盒(hbox)的简写。每个按钮都是以同样的方式组装到横向盒里的(例如,以同样参数调用gtk_box_pack_start()函数)。 这是gtk_box_pack_start()函数的声明。 voidgtk_box_pack_start(GtkBox*box, GtkWidget*child, gbooleanexpand, gbooleanfill, guintpadding); 第一个参数是你要把对象组装进去的盒,第二个就是该对象。目前这些对象将都是按钮,即我们要将这些按钮组装到盒中。 gtk_box_pack_start()和gtk_box_pack_end()中的expand参数是用来控制构件在盒中是充满所有多余空间这样盒会扩展到充满所有分配给它的空间(TURE);还是盒收缩到仅仅符合构件的大小(FALSE)。设置expand为FALSE将允许你向左或向右对齐你的构件。否则,它们会在盒中展开,同样的效果只要用gkt_box_pack_start()或gtk_box_pack_end()之一就能实现。 fill参数在gtk_box_pack中控制多余空间是分配给对象本身(TRUE),还是让多余空间围绕在这些对象周围分布(FALSE)。它只有在expand参数也为TRUE时才会生效。 组装盒程序 用表组装 让我们看看另一种组装的方法-表(Tables)。在某些情况下这是极其有用的。使用表的时候,我们建立格来放入构件。构件可以占满我们所指定的所有空间,第一个要看的,当然是gtk_table_new()这个函数: GtkWidget*gtk_table_new(guintrows, guint columns, gboolean homogeneous); 第一个参数是表中要安排的行的数量,而第二个,显然,就是列的数量。 homogeneous参数跟表格框(tablesboxes)的大小处理有关。如果homogeneous是TRUE,所有表格框的大小都将调整为表中最大构件的大小。如果homogeneous为FALSE,每个表格框将会按照同行中最高的构件,与同列中最宽的构件来定自身的大小。行与列为0到n编号,而n是我们在调用gtk_table_new时所指定的值。 注意坐标系统开始于左上角。要向框中放置一个构件,使用下面的函数: voidgtk_table_attach(GtkTable*table, GtkWidget *child, guint left_attach, guint right

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档