实际的应用中,往往有很多个控件, 同样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) , );
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 , , , , ); //添加按钮一到位置(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 , , , , ); //添加按钮一到位置(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 , , , , ); //添加按钮一到位置(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 , , , , ); gtk_widget_show_all(window); }

  编译并运行:

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

  运行结果:

aaarticlea/png;base64,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8AsQGIX/HFFDBBBAAAEEEAhIgMAoIGiKQQABBBBAAIHwCxAYhf8cUUMEEEAAAQQQCEiAwCggaIpBAAEEEEAAgfALEBiF/xxRQwQQQAABBBAISIDAKCBoikEAAQQQQACB8AsQGIX/HFFDBBBAAAEEEAhIgMAoIGiKQQABBBBAAIHwCxAYhf8cUUMEEEAAAQQQCEiAwCggaIpBAAEEEEAAgfALEBiF/xxRQwQQQAABBBAISIDAKCBoikEAAQQQQACB8AsQGIX/HFFDBBBAAAEEEAhIgMAoIGiKQQABBBBAAIHwCxAYhf8cUUMEEEAAAQQQCEiAwCggaIpBAAEEEEAAgfALEBiF/xxRQwQQQAABBBAISIDAKCBoikEAAQQQQACB8AsQGIX/HFFDBBBAAAEEEAhIgMAoIGiKQQABBBBAAIHwCxAYhf8cUUMEEEAAAQQQCEiAwCggaIpBAAEEEEAAgfALEBiF/xxRQwQQQAABBBAISIDAKCBoikEAAQQQQACB8AsQGIX/HFFDBBBAAAEEEAhIgMAoIGiKQQABBBBAAIHwCxAYhf8cUUMEEEAAAQQQCEiAwCggaIpBAAEEEEAAgfALEBiF/xxRQwQQQAABBBAISIDAKCBoikEAAQQQQACB8AsQGIX/HFFDBBBAAAEEEAhIgMAoIGiKQQABBBBAAIHwCxAYhf8cUUMEEEAAAQQQCEiAwCggaIpBAAEEEEAAgfALEBiF/xxRQwQQQAABBBAISIDAKCBoikEAAQQQQACB8AsQGIX/HFFDBBBAAAEEEAhIgMAoIGiKQQABBBBAAIHwCxAYhf8cUUMEEEAAAQQQCEiAwCggaIpBAAEEEEAAgfALEBiF/xxRQwQQQAABBBAISIDAKCBoikEAAQQQQACB8AsQGIX/HFFDBBBAAAEEEAhIgMAoIGiKQQABBBBAAIHwCxAYhf8cUUMEEEAAAQQQCEiAwCggaIpBAAEEEEAAgfALEBiF/xxRQwQQQAABBBAISIDAKCBoikEAAQQQQACB8AsQGIX/HFFDBBBAAAEEEAhIgMAoIGiKQQABBBBAAIHwCxAYhf8cUUMEEEAAAQQQCEiAwCggaIpBAAEEEEAAgfALEBiF/xxRQwQQQAABBBAISIDAKCBoikEAAQQQQACB8AsQGIX/HFFDBBBAAAEEEAhIgMAoIGiKQQABBBBAAIHwCxAY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AQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBEgMOJSQAABBBBAAAEEHAECIy4FBBBAAAEEEEDAESAw4lJAAAEEEEAAAQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBEgMOJSQAABBBBAAAEEHAECIy4FBBBAAAEEEEDAESAw4lJAAAEEEEAAAQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBEgMOJSQAABBBBAAAEEHAECIy4FBBBAAAEEEEDAESAw4lJAAAEEEEAAAQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBEgMOJSQAABBBBAAAEEHAECIy4FBBBAAAEEEEDAESAw4lJAAAEEEEAAAQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBEgMOJSQAABBBBAAAEEHAECIy4FBBBAAAEEEEDAESAw4lJAAAEEEEAAAQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBEgMOJSQAABBBBAAAEEHAECIy4FBBBAAAEEEEDAESAw4lJAAAEEEEAAAQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBEgMOJSQAABBBBAAAEEHAECIy4FBBBAAAEEEEDAESAw4lJAAAEEEEAAAQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBEgMOJSQAABBBBAAAEEHAECIy4FBBBAAAEEEEDAESAw4lJAAAEEEEAAAQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBEgMOJSQAABBBBAAAEEHAECIy4FBBBAAAEEEEDAESAw4lJAAAEEEEAAAQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBEgMOJSQAABBBBAAAEEHAECIy4FBBBAAAEEEEDAESAw4lJAAAEEEEAAAQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBEgMOJSQAABBBBAAAEEHAECIy4FBBBAAAEEEEDAESAw4lJAAAEEEEAAAQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBEgMOJSQAABBBBAAAEEHAECIy4FBBBAAAEEEEDAESAw4lJAAAEEEEAAAQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBEgMOJSQAABBBBAAAEEHAECIy4FBBBAAAEEEEDAESAw4lJAAAEEEEAAAQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBEgMOJSQAABBBBAAAEEHAECIy4FBBBAAAEEEEDAESAw4lJAAAEEEEAAAQQcAQIjLgUEEEAAAQQQQMARIDDiUkAAAQQQQAABBBwBAiMuBQQQQAABBBBAwBH4/8HlPGVFcxCNAAAAAElFTkSuQmCC" alt="" />

 gtk_grid_attach(GTK_GRID(grid) , button , 0 , 0 , 1 , 1);

该函数后面四个参数依次代表:第几行,第几列,横向跨度,纵向跨度。

Linux 下从头再走 GTK+-3.0 (四)的更多相关文章

  1. Linux 下从头再走 GTK+-3.0 (一)

    原本由于项目需求在 Linux 下学习过一段时间的 GTK+2.0 图形开发,时隔一段时间,想真正深入学习一下 GTK . 这次直接从头学习 GTK+-3.0 ,并写下博文便于日后查看,也方便新手入门 ...

  2. Linux 下从头再走 GTK+-3.0 (五)

    实践中表明,纯粹利用 gtk 函数来创建 UI 是很繁琐的事,需要编写很多代码.怎样才能快速统一的建立 UI 布局呢? 可喜的是 GTK 提供了一个 GtkBuilder 用于快速创建界面.它读取一个 ...

  3. Linux 下从头再走 GTK+-3.0 (三)

    之前我们为窗口添加了一个按钮,接下来让这个按钮丰富一点.并给窗口加上图标. 首先创建 example3,c 的源文件. #include <gtk/gtk.h> static void a ...

  4. Linux 下从头再走 GTK+-3.0 (六)

    在 GTK3 中增加了一个 GtkApplicaton 类,便于我们处理多窗口程序,同时有了 GtkApplication 我们也更容易创建灵活,易用,界面美观的应用程序. 在前面的几个例子中,演示了 ...

  5. Linux 下从头再走 GTK+-3.0 (二)

    仅仅创建一个空白窗口是不够的,下面我们为创建的窗口添加一个按钮. 以 Hello,World!为例. 首先创建一个源文件:example2.c 内容如下. #include <gtk/gtk.h ...

  6. Linux下安装二进制版mysql-8.0.15

    1.添加用户## 添加用户组groupadd mysql## 添加用户,指定用户home目录useradd -g mysql mysql -d /data/mysql## 解压下载的mysql二进制包 ...

  7. linux下安装mysql5.7(centos6.0)

    注:因为网络原因,这个mysql安装是我以前在学校的时候找到的一个安装包,不过也找到了下载的地址:http://www.itmop.com/downinfo/143061.html下载完成后,把文件上 ...

  8. linux下如何编译安装gcc-8.3.0

    1. 获取源码 wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.xz -P ~ tar xvf gcc-8.3.0.t ...

  9. linux下使用yum安装新版php7.0

    这两天又装了一下虚拟机,又要编译lnmp,还要弄各种拓展,很麻烦,能不能直接yum安装呢?答案是可以的! 1.首先要更新yum源,不然是默认的老版本,一般都在5.6及以下,但是php7都出来好久了,性 ...

随机推荐

  1. nodejs中全局变量

    1.global 类似于客户端javascript运行环境中的window module1.js: module.exports={}; //耻辱的使用了全局变量 global.varA = &quo ...

  2. wso2esb之代理服务 Proxy Services

    代理服务 顾名思义,代理服务充当了WSO2 ESB服务的代理,通常是一个已经存在的服务端点,代理服务可以使用不同的传输方式. 客户可以直接发送请求代理服务的ESB,客户看到服务代理. 运行示例 配置W ...

  3. ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint......

    今天用Hibernate建立外键的时候发现没有建立 但是创建了这个字段 情景: user表有一字段role,role是role表id字段的外键 原因: user表中已经有记录了,而且有的记录role这 ...

  4. C# 如何实现带消息数的App图标

    上次写了一篇博文,但是每次更新图标时,桌面会闪烁(刷新),有博友说人家的图标都不会刷新,还能动画.我想了一下,如果要达到这个效果,可以用Form来实现,就是在Form中嵌入一个图片,然后用一个labe ...

  5. 【HTML】字符(Glyphs)收集

    Special Characters " " " quotation mark u+0022 ISOnum p:before { content:"\0022& ...

  6. WAF指纹识别和XSS过滤器绕过技巧

    [译文] -- “Modern Web Application Firewalls Fingerprinting and Bypassing XSS Filters” 0x1 前言 之前在乌云drop ...

  7. js基本算法:冒泡排序,二分查找

    知识扩充: 时间复杂度:算法的时间复杂度是一个函数,描述了算法的运行时间.时间复杂度越低,效率越高. 自我理解:一个算法,运行了几次时间复杂度就为多少,如运行了n次,则时间复杂度为O(n). 1.冒泡 ...

  8. The quieter you become,The more you are able to hear.

  9. Web自动化测试 Selenium 2/3

    TesNG和Selenium集成使用 TestNG 是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔 离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整 个系统,例如运用 ...

  10. Java笔试题(一)

    一. 选择题(共50题,每题2分,共100分.多选题选不全或选错都不得分.) 7. 以下说法错误的是()/*这个我感觉是全对,谁知道哪个错啦,讲解下,非常感谢*/A) super.方法()可以调用父类 ...