原本由于项目需求在 Linux 下学习过一段时间的 GTK+2.0 图形开发,时隔一段时间,想真正深入学习一下 GTK 。

这次直接从头学习 GTK+-3.0 ,并写下博文便于日后查看,也方便新手入门。

  安装环境参考:

    Fedora:http://www.cnblogs.com/watsonlong/archive/2011/04/06/2006989.html

    Ubuntu:http://www.cnblogs.com/niocai/archive/2011/07/15/2107472.html

    Arch    :直接执行 sudo pacman -S gtk3 即可。

  注意采用的是GTK3,上文中大部分是GTK2,注意同样的方式安装GTK3。

 

 首先学习到的便是创建一个空白的窗口。我们创建一个名为 example.c 的源文件。内容如下

 #include <gtk/gtk.h>            //每个GTK程序都要包含的头文件,里面申明了很多类型,函数原型等

 static void activate (GtkApplication *app , gpointer data)
{
GtkWidget *window; //申明一个窗口 window = gtk_application_window_new(app); //为app创建一个窗口 gtk_window_set_title(GTK_WINDOW(window) , "Application"); //设置窗口的标题
gtk_window_set_default_size(GTK_WINDOW(window) , , ); //设置窗口默认大小为长宽各200像素
gtk_widget_show_all(window); //显示窗口
} int main(int argc , char **argv) //主函数
{
GtkApplication *app; //申明创建一个 GtkApplicatin对象名为app
int app_status; //用于拿到app 运行结束后的返回值 app = gtk_application_new("org.rain.gtk" , G_APPLICATION_FLAGS_NONE); //创建一个application
g_signal_connect(app , "activate" , G_CALLBACK(activate) , NULL); //连接信号,初始化app时,调用 activate 函数
app_status = g_application_run(G_APPLICATION(app) , argc , argv); //运行app g_object_unref(app); //销毁app return app_status;
}

  如下方式编译源文件,并执行生成的example可执行文件。

gcc example.c `pkg-config --cflags --libs gtk+-3.0` -Wall -o example
./example

  运行结果如下:

aaarticlea/png;base64,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" alt="" />

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

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

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

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

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

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

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

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

    实际的应用中,往往有很多个控件, 同样GTK提供了很多种布局方案,Box, Fixed , Table , Grid 等. 接下来试试网格布局 Grid. 我们创建 example4.c ,内容如下: ...

  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. Java检测对象是否相等

    关系运算符==和!=也适用于所有对象,但它们的含义通常会使初涉Java 领域的人找不到北.下面是一个例子: public class Equivalence { public static void ...

  2. jQuery Danmmu Player 弹幕视频

    Danmmu Player是基于jQuery的弹幕视频插件.当在看视频的时候,同时发表自己的观点,这样很好的提高用户互动效果.其实也就是在视频界面上做一个滚动展示动画效果,这样的聊天互动视频效果我们叫 ...

  3. 基于 Bootstrap 的响应式后台管理面板

    你想建立一个后台管理面板或者分析仪表板吗?不需从头开始,Keen IO Bootstrap 是一个响应式的仪表盘模板,可以帮助你在几分钟内呈现数据,让你可以创建一个有吸引力的,定制的分析仪表板,随时可 ...

  4. 20款高质量的 HTML5 网站模板【免费下载】

    下面的列表集合了20款高质量的免费 HTML5 网站模板,这些专业的模板能够让你的网站吸引很多的访客.这些免费的 HTML5 模板虽然不是响应式的,不过都很实用.赶紧来看看. 您可能感兴趣的相关文章 ...

  5. 【今日推荐】移动 Web 开发的10个最佳 JavaScript 框架

    选择正确的 JavaScript 框架,对于开发移动 Web 应用程序是至关重要的,也是移动应用程序开发的一项重要任务.开发人员可以使用框架实现的功能高效地达到他们的开发目标.这些预实现的组件采用优秀 ...

  6. js删除数组中的'NaN'

    js中的NaN不和任何值相等,包括自身. 所以可以使用x!=x来判断x是否是NaN,当且仅当x为NaN时,表达式的结果为true. NaN != NaN //true 可以依此删除数组中的'NaN'. ...

  7. WPF中的Invoke

    今天帮同事看一个问题,她用为了实现动画效果用主线程执行Thread.Sleep,然后界面就卡死了. 这个问题好解决,new 一个Thread就行了,但是更新WPF的界面需要主线程的操作,然后习惯性的打 ...

  8. SAP 录屏BDC使用—实例

    1)  输入TCode:SHDB进入BDC录制初始界面,该界面可以实现已创建BDC Session信息的查看.删除及锁定等操作 2)  单击工具栏 Newrecording 按钮创建一个新的BDC,系 ...

  9. SharePoint 2013 修改表单认证登录页面

    前 言 之前的博客我们介绍了如何为SharePoint配置表单登陆,但是,登陆页面是丑.很丑.非常丑.特别非常丑!我们现在就介绍一下如何定制SharePoint表单登陆页面! SharePoint 表 ...

  10. 解决IIS进程回收后第一次访问慢的问题

    IIS 有一种机制,默认会在IIS空闲一定时间段后,将应用程序池进行回收,这个时间段在IIS6中默认是20分钟,在IIS7中默认是1740分钟.两个配置都不合理,都会导致当应用程序池被回收后,第一次访 ...