这个东西区别还是比较大的,他们俩都能吧一个控件放入到容器中。但GtkBox 本身也是GtkContainer的一个派生类,所以作为一个容器也可以使用gtk_container_add,但是GtkBox还有一些GtkContaner所不具有的属性,所以使用gtk_box_pack_start更能表现出GtkBox的优点。
gtk_box_pack_start(GTK_BOX(vbox),label1,FALSE,TRUE,0); gtk_box_pack_start(GTK_BOX(vbox),hseparator,FALSE,TRUE,10); gtk_box_pack_start(GTK_BOX(vbox),label2,FALSE,TRUE,0); g_signal_connect_swapped(G_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),G_OBJECT(window)); gtk_widg...
gtk_box_pack_start(GTK_BOX(box),button,FALSE,FALSE,0); /*把按钮加入组装盒*/ gtk_widget_show(button); /*使按钮可视*/ } 下面我们来编译它: $gcc –o box box.c `pkg-config –cflags –libs gtk+-2.0` $./box 程序运行后会出现下面的图形:...
函数gtk_box_pack_start将构件放在顶部(对于纵向组装盒)或左边(对于横向组装盒。函数gtk_box_pack_end将构件放在底部(对于纵向组装盒)或右边(对于横向组装盒)。 gtk_box_paxk_start和gtk_box_pack_end有5个参数,其中3个参数用来确定如何将构件放在组装盒内。 expand参数表示在所有构件加入组装盒以后,构件周围是否...
gtk_box_pack_end(GTK_BOX(box), button_box, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(button_box), play_button, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(button_box), stop_button, FALSE, FALSE, 0); /* Position the buttons */ ...
gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0); GtkWidget* button_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 200); gtk_box_pack_end(GTK_BOX(box), button_box, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(button_box), play_button, FALSE, FALSE, 0); ...
1. GtkHBox/GtkVBox的gtk_box_pack_start函数中的expand和fill两个参数的区别: expand就是当Box给我们的widget分配了额外的空间后,我们的widget会占住这个空间,不会让给别人。 fill就是当expand为TRUE的时候,我们不仅占用Box给我们分配的空间,而且会把自己的界面扩大到这个空间上。
gtk.Box使用打包机制将子小部件参考特定位置(其中参考开始或结束)放置在其中。pack_start()方法将小部件从头到尾放置。相反,pack_end()方法将小部件从头到尾放置。或者,您可以使用类似于pack_start()的add()方法。 以下方法可用于gtk.HBox和gtk.VBox-
以水平方向的box为例,gtk_hbox_new()有两个参量,前一个gboolean类型是决定控件是否在box内均匀分布,如果是TRUE就均匀分布,否则要看具体填充时候的选择。后一个gint类型设置控件在box中填充时的最小左右间隔。 在填充的时候,gtk_box_pack_start或者gtk_box_pack_end分别对应填充到开头或末尾。对于gtk_box_pack_...