首页 > 代码库 > C语言学习(2)-GTK布局
C语言学习(2)-GTK布局
首先了解下gtk中函数的定义格式:
记住下面几个格式看,下面的代码
声明变量:GtkAbc*abc=gtk_abc_new()声明控件; 赋值:gtk_abc_set_label(controlName,value); 添加到父容器:gtk_container_add(controFather,controlChildl); 显示控件:gtk_widget_show(controlName); 一般默认值:gtk_box_pack_start()的后三个 值,一般为FALSE,FALSE,0 |
1.盒子布局(垂直和水平)
#include <stdio.h>#include<gtk/gtk.h>int main(int argc, char *argv[]){ //初始化gtk gtk_init(NULL,NULL); //定义一个指向window的指针 GtkWindow*window=gtk_window_new(GTK_WINDOW_TOPLEVEL); //窗体关闭之后执行 g_signal_connect(window,"destroy",gtk_main_quit,NULL); //设置标题 gtk_window_set_title(window,"标题"); //每个被添加的控件都要有show gtk_widget_show(window); //添加一个box,使用垂直布局 //GTK_ORIENTATION_HORIZONTAL为水平布局 GtkBox*box=gtk_box_new(GTK_ORIENTATION_VERTICAL,0); gtk_container_add(window,box); gtk_widget_show(box); GtkLabel*lb1=gtk_label_new("盒子布局"); gtk_container_add(box,lb1); gtk_box_pack_start(box,lb1,FALSE,FALSE,0); gtk_widget_show(lb1); GtkEntry*entry1=gtk_entry_new(); gtk_container_add(box,entry1); gtk_box_pack_start(box,entry1,FALSE,FALSE,0); gtk_widget_show(entry1); GtkButton*btn1=gtk_button_new(); gtk_button_set_label(btn1,"按钮一"); gtk_container_add(box,btn1); gtk_box_pack_start(box,btn1,FALSE,FALSE,0); gtk_widget_show(btn1); gtk_main(); return 0;}
运行结果如下
2.网格布局
原理:
gtk_grid_attach(grid1,btn1,1,2,3,4): grid1表示父容器; btn1表示被添加的控件; 1表示该控件距离左边一个网格; 2表示该控件距离上边两个网格; 3表示该控件占据3个网格的宽度; 4表示该控件占据4个网格的高度; |
记住几句话:
1.网格布局的关键词是Grid 2.gtk_button_set_label()表示赋值,赋值用 set_label() 3.gtk_container_add()要在gtk_grid_attach()之后写 |
#include <stdio.h>#include<gtk/gtk.h>int main(int argc, char *argv[]){ gtk_init(NULL,NULL); GtkWindow*window=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(window,"网格布局"); g_signal_connect(window,"destroy",gtk_main_quit,NULL); gtk_widget_show(window); GtkGrid*grid1=gtk_grid_new(); gtk_container_add(window,grid1); gtk_widget_show(grid1); GtkButton*btn1=gtk_button_new(); gtk_button_set_label(btn1,"111111"); gtk_grid_attach(grid1,btn1,1,1,1,1); gtk_container_add(grid1,btn1); gtk_widget_show(btn1); GtkButton*btn2=gtk_button_new(); gtk_button_set_label(btn2,"222222"); gtk_grid_attach(grid1,btn2,0,0,1,1); gtk_container_add(grid1,btn2); gtk_widget_show(btn2); gtk_main(); return 0;}
运行结果如下图
今天,就写这么多了;我的目标并不高,希望每天写一篇,具体细节等学习深入了,再慢慢补充。 |
C语言学习(2)-GTK布局
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。