马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这一讲讲解GtkFixed和GtkPaned,这两个部件都比较简单
GtkFixed
GtkFixed提供绝对定位布局,可以通过设置坐标来精确摆放子部件的位置,在窗口布局固定的情况下使用。
例程:#include <gtk/gtk.h>
int main(int argc,char *argv[])
{
GtkWidget *window,*fixed,*label,*button;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window),"hello fishc - GtkFixed");
gtk_widget_set_size_request(window,300,200);
fixed = gtk_fixed_new();
gtk_container_add(GTK_CONTAINER(window), fixed);
label = gtk_label_new("label1");
button = gtk_button_new_with_label("button");
gtk_fixed_put(GTK_FIXED(fixed), label, 20,20);
gtk_fixed_put(GTK_FIXED(fixed), button, 60,60);
gtk_widget_show_all(window);
gtk_main ();
return 0;
}
gtk_fixed_put函数用来为GtkFixed部件添加子部件,并设置其位置坐标,最后来个参数用来设置子部件在父容器中的位置。
GtkPaned
GtkPaned提供一个可以调节的分割条,把窗口分隔成两个面板。GtkHPaned和GtkVPaned“继承”于GtkPaned,并且在创建GtkPaned时可以设置参数,使其成为GtkHPaned或GtkVPaned,所以这里只讲GtkPaned。
在label1和button直接有个分割条,可以用来调整两侧面板的宽度。
例程:
#include <gtk/gtk.h>
int main(int argc,char *argv[])
{
GtkWidget *window,*paned,*label,*button;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window),"hello fishc - GtkPaned");
gtk_widget_set_size_request(window,300,200);
paned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL);
gtk_container_add(GTK_CONTAINER(window), paned);
label = gtk_label_new("label1");
button = gtk_button_new_with_label("button");
gtk_paned_add1(GTK_PANED(paned), label);
gtk_paned_add2(GTK_PANED(paned), button);
//gtk_paned_set_position(GTK_PANED(paned),150);
gtk_widget_show_all(window);
gtk_main ();
return 0;
}
另外也可以通过代码设置分割条的位置:gtk_paned_set_position(GTK_PANED(paned),150);
|