GTK重拾--00

简介: 版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/49684029 (一):写在前面从现在开始,我准备学习GTK+2.
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/49684029

(一):写在前面

从现在开始,我准备学习GTK+2.0库进行linux下的界面程序开发.从我们程序员的角度来讲,接触到的第一个程序肯定是Hello World.所以,我们现在就从Hello World学起.在这里仅仅是构建了一个GTK+的空白窗口,主要的目的是先感受一下GTK+的开发,既然他是一个程序库,之前我又有过QTGui方面的开发经验,估计学习起来应该不是很费劲.

(二):初识GTK+

1:什么是GTK+

GTK+或者是称作GIMP套件,是一个创建图形用户接口的多平台工具套件.GTK+提供了一套完整的组件库,无论是小工具的开发还是一个大型应用的开发都是非常合适的.

2:可以在哪里使用

任何地方都可以使用GTK+.只要你的平台上安装有GTK+的图形库,就可以在任何平台上进行GTK+的开发和使用.GTK+是跨平台的,它提供了简单易用的API来加速你的开发时间.下面我们来看一下官网上提供的使用GTK+开发的程序的截图:

gnome-desktop

Gimp

3:GTK+支持的语言

GTK+虽然使用C编写,但是他现在已经被设计支持很多编程语言,不仅仅是C/C++.下面我们来看一下GTK+锁支持的语言列表:

这里写图片描述

4:GTK+进一步了解

GTK+是一个部件工具包.他是由C语言开发,使用GObject,一个用于C的面向对象的框架实现的.组件是在一个层次被组织的.窗口组件是主容器.用户接口是随后通过向窗口中添加按钮,下拉菜单,输入框和其他组件构建的.如果拟正在创建一个复杂的用户结构,推荐你使用GtkBuilder和他对用的GTK专用的标记描述语言,而不是手动的嵌入到接口中.你可以使用一个可视化的用户接口编辑器,就像Glade.

GTK是事件驱动的.套件监听事件,例如在一个按钮上的点击事件,并将事件传递到你的应用中.在开发GTK+应用程序之前,我们需要安装GTK+2.0的以来和库函数.

(三):Hello World

下面我们就需要新建一个C程序来编写一个最简单的GTK+程序.

1:新建一个hello.c文件
2:包含我们构建GTK+程序需要的头文件gtk/gtk.h
3:初始化整个GTK+程序
4:添加窗口
5:显示窗口
6:进入主循环

下面我们来看一下我们的代码:

#include <gtk/gtk.h>

int main(int argc,char *argv[])
{
    GtkWidget *window;

    // 初始化GTK+程序,必不可少
    gtk_init(&argc,&argv);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    // 生成窗体之后需要显示
    gtk_widget_show(window);

    // 相当于让程序进入主循环,等待事件的发生
    gtk_main();

    return 0;
}

(四):编译GTK+程序

当然,编译就比较简单了,使用GCC工具就可以编译.不过在这里需要一个工具,那就是pkg-config,他会为自动编译提供需要的include文件.好了,那么我们就使用下面的命令来编译我们的程序:

gcc hello.c -o hello `pkg-config --libs --cflags gtk+-2.0`

注意,这里将pkg-config引起来的是反引号.

(五):运行程序

编译完成之后我们就可以直接使用下面的命令来运行我们的程序:

./hello

这样,程序就成功运行了,我们来看一下运行的效果:

这里写图片描述

(六):写在后面

与其临渊羡鱼,不如退而结网。

我的代码已经上传到我的github,大家可以下载:
GTKGame源码下载

目录
相关文章
|
存储 XML 安全
GTK入门
GTK入门
331 0
|
编译器 C语言 Windows
问题集锦:Windows下使用CMake编译cocos2d-x
问题集锦:Windows下使用CMake编译cocos2d-x
364 0
|
容器
一起谈.NET技术,使用MonoDevelop开发GTK#图形界面
  Mono一直到现在的2.8已经完全可以胜任一些比较小的项目了,但相关的开发文档与教程一直比较匮乏,中文材料更是屈指可数。虽然Mono与.net很多类库都是通用的,但Mono仍然有为数不少的扩充类库,其中最重要的就是对于GTK二次封装的GTK#图形界面类库了,目前想要开发原生的Mono图形界面程序此类库必不可少。
1457 0
|
算法 C# 计算机视觉
Win8Metro(C#)数字图像处理--2.34直方图规定化
原文:Win8Metro(C#)数字图像处理--2.34直方图规定化  [函数名称] WriteableBitmap HistogramSpecificateProcess(WriteableBitmap s...
1244 0
|
算法 C# 计算机视觉
Win8 Metro(C#)数字图像处理--2.61哈哈镜效果
原文:Win8 Metro(C#)数字图像处理--2.61哈哈镜效果  [函数名称]   哈哈镜效果函数  WriteableBitmap DistortingMirrorProcess(WriteableBitmap src, int x, int y) [算法说明]   哈哈镜效果图像实际上是一种图像形变特效而已,对于这个特效,我们可以通过三角变换来实现。
1194 0
|
编译器 Windows
gentoo安装symbian qt开发环境
gentoo安装软件的优势在于overlay具多,本来还不太清楚要怎么安装的,有了overlay一切就方便了。 首先要用overlay要安装layman,这个估计都已经安装了,修改下配置文件,增加自定义overlay地址: 在/etc/layman/layman.cfg文件中的overlays项
2216 0
|
Ubuntu
GTK+重拾--10 GTK+中的组件(二)
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/50442630 (一):写在前面 在上面一个小节中,我们讲解了在GTK+2.0中的一些常用的构件,在这一小节中,我们将继续学习GTK+中常用的稍微复杂的构件,这里我们主要是学习GtkComboBox,GtkEntry,GtkIconView,GtkImage,GtkSeparator,GtkStatusBar。
829 0