博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言学习(2)-GTK布局
阅读量:5047 次
发布时间:2019-06-12

本文共 2644 字,大约阅读时间需要 8 分钟。

首先了解下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 
#include
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()之后写
4.所有新创建的控件,都要有show的方法
5.如果涉及到布局,都要有附加到布局的方法
#include 
#include
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;}

运行结果如下图

今天,就写这么多了;我的目标并不高,希望每天写一篇,具体细节等学习深入了,再慢慢补充。

转载于:https://www.cnblogs.com/kimisme/p/4192515.html

你可能感兴趣的文章
日常报错
查看>>
list-style-type -- 定义列表样式
查看>>
hibernate生成表时,有的表可以生成,有的却不可以 2014-03-21 21:28 244人阅读 ...
查看>>
mysql-1045(28000)错误
查看>>
Ubuntu 编译出现 ISO C++ 2011 不支持的解决办法
查看>>
1.jstl c 标签实现判断功能
查看>>
Linux 常用命令——cat, tac, nl, more, less, head, tail, od
查看>>
超详细的Guava RateLimiter限流原理解析
查看>>
VueJS ElementUI el-table 的 formatter 和 scope template 不能同时存在
查看>>
Halcon一日一练:图像拼接技术
查看>>
Swift - RotateView
查看>>
iOS设计模式 - 中介者
查看>>
centos jdk 下载
查看>>
HDU 1028 Ignatius and the Princess III(母函数)
查看>>
(转)面向对象最核心的机制——动态绑定(多态)
查看>>
token简单的使用流程。
查看>>
django创建项目流程
查看>>
UIActionSheet 修改字体颜色
查看>>
Vue 框架-01- 入门篇 图文教程
查看>>
Spring注解之@Lazy注解,源码分析和总结
查看>>