在建立一个应用程式的时候,你会想要将一个以上的元件放入一个视窗,我们第一个helloworld范例只使用一个元件所以我们可以简单地使用 gtk_container_add()呼叫来”封装”元件到视窗内,但是当你想要放更多的元件进入视窗的时候,你要如何控制元件的位置?这里就是进入封装的地方。
封装盒的原理
多数封装是通过创建一些“盒(boxes)”来达成的,这是些不可见的元件容器,它们有两种形式:一种是横向盒(horizontal box),一种是纵向盒(vertical box)。当我们封装元件到横向盒里时,这些元件就依着我们呼叫的顺序由左至右或从右到左水平地插入进去。在纵向盒里,则从顶部到底部或相反地封装元件, 你可以使用任意的盒组合,比如盒套盒或者盒挨着盒,用以产生你想要的效果。
要创建一个新的横向盒我们呼叫 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 就会知道要把元件放到哪里去,并且会自动做调整大小及其它美化的事情。至于如何封装你的元件这里还有一些选项。正如你能想到的,在放置和创建元件时,这些方法给了我们很多的弹性。
3 則留言
Comments are closed.