Linux 下从头再走 GTK+-3.0 (四)

王朝学院·作者佚名  2016-05-26
窄屏简体版  字體: 小  |  中  |  大  |  超大  

linux 下从头再走 GTK+-3.0 (四)实际的应用中,往往有很多个控件, 同样GTK提供了很多种布局方案,Box, Fixed , Table , Grid 等。

接下来试试网格布局 Grid。

我们创建 example4.c ,内容如下:

#include <gtk/gtk.h>static void PRint_hello(GtkWidget *button , gpointer data);static void activate(Gtkapplication *app , gpointer data);int main(int argc , char **argv){ GtkApplication *app; int app_status; app = gtk_application_new("org.rain.gtk" , G_APPLICATION_FLAGS_NONE); g_signal_connect(app , "activate" , G_CALLBACK(activate) , NULL); app_status = g_application_run(G_APPLICATION(app) , argc , argv); g_object_unref(app); return app_status;}static void print_hello(GtkWidget *button , gpointer data){ printf("Hello,World!\n");}static void activate(GtkApplication *app , gpointer data){ GtkWidget *window; GtkWidget *grid; GtkWidget *button; //创建窗口 window = gtk_application_window_new(app); gtk_window_set_title(GTK_WINDOW(window) , "grid test");// gtk_window_set_default_size(GTK_WINDOW(window) , 200 , 200); //创建网格 grid = gtk_grid_new(); //添加网格布局到window上 gtk_container_set_border_width(GTK_CONTAINER(window) , 20); gtk_container_add(GTK_CONTAINER(window) , grid); //添加按钮一到位置(0,0)处,并设置高,宽均为一个单元 button = gtk_button_new_with_label("Button1"); g_signal_connect(button , "clicked" , G_CALLBACK(print_hello) , NULL); gtk_grid_attach(GTK_GRID(grid) , button , 0 , 0 , 1 , 1); //添加按钮一到位置(1,0)处,并设置高,宽均为一个单元 button = gtk_button_new_with_label("Button2"); g_signal_connect(button , "clicked" , G_CALLBACK(print_hello) , NULL); gtk_grid_attach(GTK_GRID(grid) , button , 1 , 0 , 1 , 1); //添加按钮一到位置(0,1)处,并设置高为一个单元,宽为两个单元 button = gtk_button_new_with_label("Exit"); g_signal_connect_swapped(button , "clicked" , G_CALLBACK(gtk_widget_destroy) , window); gtk_grid_attach(GTK_GRID(grid) , button , 2 , 0 , 1 , 1); //添加按钮一到位置(1,1)处,并设置高为一个单元,宽为两个单元 button = gtk_button_new_with_label("Exit"); g_signal_connect_swapped(button , "clicked" , G_CALLBACK(gtk_widget_destroy) , window); gtk_grid_attach(GTK_GRID(grid) , button , 1 , 1 , 2 , 1); gtk_widget_show_all(window);}

编译并运行:

gcc exampe.c `pkg-config --cflags --libs gtk+-3.0`./a.out

运行结果:

gtk_grid_attach(GTK_GRID(grid) , button , 0 , 0 , 1 , 1); 该函数后面四个参数依次代表:第几行,第几列,横向跨度,纵向跨度。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航