GTK+图形化应用程序开发学习笔记(一)—概述

一、什么是GNOME、

GNOME的意思是“GNU Network Object Model Environment”(GNU网络对象模型环境),是Linux世界令人激动的软件开发成果。虽然它的名字比较长,但这个软件项目的目的却很简单,那就是实现一个永恒友好的、功能强大的用户和开发桌面环境,而这一环境又完全是以免费的开源代码软件为基础的。

正像它名字的那样,GNOME既是一个桌面,也是一个完整的程序设计环境。GNOME是底层X窗口系统和高层管理器软件中间的一个程序设计界面,它向GUI程序员提供了丰富的功能和强大的开发工具,这些工具是传统意义上的Linux所缺乏的。

二、什么是GIMP、GTK+

      GNOME中的基本工具包是GTK+(即GIMP工具包),它最初是为了简化GIMP的开发工作而编写出来的。

GIMP是UNIX类操作系统上的影像处理程序。GIMP是通用影像处理程序或者GNU影像处理程序的缩写。它的功能类似Windows的Photoshop。

GTK+是一个性能优异的、面向对象的、跨平台的、不依赖于具体语言的开发工具包,在GNOME出现之前就已经大量地用来开发各种软件程序了。GTK+能够支持许多程序设计语言,其中包括C、C++、TOM、PERL、Python、GUILE、ADA等。

三、GTK+使用的库

GTK+使用GLIB库和GDK(GIMP Drawing Kit,GIMP绘图工具包)系列的开发库,GLIB定义了数据类型,提供了错误处理和内存管理方面的函数;而GDK则是本地图形化API和GTK+中间的一个过渡层,它需要依赖具体的计算机平台。因此,向其他计算机平台上移植GTK+只需要重新编写GDK。

四、GTK+的安装

一般来说最新的Redhat完全安装就带GTK+工具库了。大家直接可以在上面开发程序。如果当前系统没有GTK+工具库,可以到www.gtk.org.下载源码安装。具体安装方法可以。参见CU上的GTK+ 2.0安装的帖子,这里不再叙述。

检验系统GTK+ 2.0的方法是

$ pkg-config --modversion gtk+-2.0

五、使用GTK+工具集编写程序

下面就是一个简单的使用GTK+库编写的程序,目的是让大家体验到GTK+编程的乐趣。

/*base.c*/

#include <gtk/gtk.h>

int main(int argc, char* argv[])

{

GtkWidget *window;

gtk_init(&argc,&argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_widget_show(window);

gtk_main();

return FALSE;

}

下面我们编译它:

$ gcc -o base base.c 'pkg-config --cflags --libs gtk+-2.0'

要注意的是pkg-config --cflags --libs gtk+-2.0旁边两个像单引号的东西其实不是单引号,它是数字键1左边的符号。大家一定要注意。如果用单引号编译器会提示你pkg-config --cflags --libs gtk+-2.0没有那个文件或目录。

下面我们来运行:

$./base

程序运行后会出现一个名字为base窗体。

大家可以感觉到GTK+ 程序和普通的C语言程序没什么差别,它只不过是调用了GTK+工具库。

转载于:https://www.cnblogs.com/JPAORM/archive/2011/12/21/2510065.html

GTK+图形化应用程序开发学习笔记(一)—概述相关推荐

  1. GTK+图形化应用程序开发学习笔记(五)—组装盒、组合表、固定容器构件

    GTK+图形化应用程序开发学习笔记(五)-组装盒.组合表.固定容器构件 一.组装盒 组装盒(GtkBox)也称为组合构件.使用组装盒可以将多个构件放在一个容器中.容器可以把组装盒看作是一个构件.不像按 ...

  2. GTK+图形化应用程序开发学习笔记

    http://blog.chinaunix.net/u/22935/showart_305786.html 一.初始化GTK+ 写GTK+程序需要调用gtk_init函数对GTK+ 库函数进行初始化. ...

  3. GTK+图形化应用程序开发学习笔记(三)—窗体

    一.初始化GTK+ 写GTK+程序需要调用gtk_init函数对GTK+库函数进行初始化. 1. 名称:: gtk_init 功能: 初始化GTK+库 头文件: #include <gtk/gt ...

  4. GTK+图形化应用程序开发学习笔记(二)—Glib库

    在学习GTK+之前我们需要先学习一下 glib的有关知识.因为我们将会在以后的学习中遇到这些知识.由于本笔记不是专门介绍glib的,所以下面的介绍不会太详细.   一.什么是glib库        ...

  5. GTK+图形化应用程序开发学习笔记(六)—按钮

    一.常用构件函数 最常用的构件是按钮构件.录入字段构件.列表框构件和复合框构件.所有建立按钮的函数返回指向GtkWidget的指针.GtkWidget指针能够调用对构件进行操作的通用函数.函数gtk_ ...

  6. GTK+图形化应用程序开发学习笔记(七)—标签构件.事件盒构件

    一.标签构件 标签构件(GtkLabel)是GTK中最常见的构件,它是静态的不可编辑的字段.在屏幕上,常常用标号说明其他字段.在按钮上设置标签用来说明按钮,或者放在其他字段的旁边对该字段提供说明.它不 ...

  7. GTK+图形化应用程序开发学习笔记(四)—容器、构件

    一.构件 上一章我们介绍了如果创建一个窗体,但应用程序仅有一个窗体是不够的我们必须在窗体上添加一些东西(如:按钮,文本框等).这些东西被称为构件,而我们添加的构件的载体被称为容器(如:主窗体). 构件 ...

  8. 微信小程序开发学习笔记一

    微信小程序学习笔记(一) 环境使用及创建项目 文件目录设置 JS文件 环境使用及创建项目 环境使用:微信开发者工具 一个微信号只能开发一个微信小程序. 在微信小程序开发手册下载最新版本,学习不要bet ...

  9. 基于有Vue基础的微信小程序开发学习笔记

    微信小程序开发 文章目录 微信小程序开发 一.微信小程序介绍 二.小程序结构目录 1.小程序的文件结构 2.基本项目目录 三.配置文件详解 1.全局配置文件 2.页面配置文件 3.sitemap配置 ...

最新文章

  1. 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第2课2.6节隐藏和锁定对象...
  2. 李彦宏透露百度真正的护城河
  3. 修改Linux内核启动图片
  4. HTML DOM console.table() 方法
  5. 对HashMap数据结构的理解——加载因子和初始容量
  6. 怎么用python算单价和总价_用python计算最高投标限价
  7. Android Activity类详解
  8. linux下alias命令具体解释
  9. php手册 mac版,php中文手册for mac-php中文手册mac版下载v1.0.2 官方最新版__西西软件下载...
  10. QQ第三方登陆-极简版
  11. 收藏 | 基于深度学习的图像匹配技术一览
  12. c语言 字符串提取连续数字,c语言一串字符串中提取数字并相加的问题
  13. 7天java_7天学完Java基础之0/7
  14. 汽车尾气污染检测 尾气烟雾检测
  15. Kinect 2.0 安装体验
  16. eclipse切断_切断电源后在哪里传送天气频道
  17. 3d游戏设计读书笔记六
  18. Java Mail---SMTP协议-Java发邮件(带附件)演示过程
  19. QT字符文字转换语音播放
  20. Linux解决ip ping不通百度的问题

热门文章

  1. 在Java中调用与系统有关的剪切板Clipboard
  2. 漫谈Google的Native Client(NaCl)技术(二)–技术篇(兼谈LLVM)
  3. 千万不能干的事(文摘)
  4. SpringBoot 核心知识点整理!
  5. 记事本之修改非txt文档
  6. 女神相册密码忘记了,我只用Python写了20行代码
  7. 读书笔记_打开量化投资的黑箱10
  8. 量化中需留意的坑之一
  9. 深入了解帆软报表系统的启动过程二
  10. oracle+执行变量语句,ORACLE sql 语句的执行过程(SQL性能调整)