GTK+图形化应用程序开发学习笔记(一)—概述
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+图形化应用程序开发学习笔记(一)—概述相关推荐
- GTK+图形化应用程序开发学习笔记(五)—组装盒、组合表、固定容器构件
GTK+图形化应用程序开发学习笔记(五)-组装盒.组合表.固定容器构件 一.组装盒 组装盒(GtkBox)也称为组合构件.使用组装盒可以将多个构件放在一个容器中.容器可以把组装盒看作是一个构件.不像按 ...
- GTK+图形化应用程序开发学习笔记
http://blog.chinaunix.net/u/22935/showart_305786.html 一.初始化GTK+ 写GTK+程序需要调用gtk_init函数对GTK+ 库函数进行初始化. ...
- GTK+图形化应用程序开发学习笔记(三)—窗体
一.初始化GTK+ 写GTK+程序需要调用gtk_init函数对GTK+库函数进行初始化. 1. 名称:: gtk_init 功能: 初始化GTK+库 头文件: #include <gtk/gt ...
- GTK+图形化应用程序开发学习笔记(二)—Glib库
在学习GTK+之前我们需要先学习一下 glib的有关知识.因为我们将会在以后的学习中遇到这些知识.由于本笔记不是专门介绍glib的,所以下面的介绍不会太详细. 一.什么是glib库 ...
- GTK+图形化应用程序开发学习笔记(六)—按钮
一.常用构件函数 最常用的构件是按钮构件.录入字段构件.列表框构件和复合框构件.所有建立按钮的函数返回指向GtkWidget的指针.GtkWidget指针能够调用对构件进行操作的通用函数.函数gtk_ ...
- GTK+图形化应用程序开发学习笔记(七)—标签构件.事件盒构件
一.标签构件 标签构件(GtkLabel)是GTK中最常见的构件,它是静态的不可编辑的字段.在屏幕上,常常用标号说明其他字段.在按钮上设置标签用来说明按钮,或者放在其他字段的旁边对该字段提供说明.它不 ...
- GTK+图形化应用程序开发学习笔记(四)—容器、构件
一.构件 上一章我们介绍了如果创建一个窗体,但应用程序仅有一个窗体是不够的我们必须在窗体上添加一些东西(如:按钮,文本框等).这些东西被称为构件,而我们添加的构件的载体被称为容器(如:主窗体). 构件 ...
- 微信小程序开发学习笔记一
微信小程序学习笔记(一) 环境使用及创建项目 文件目录设置 JS文件 环境使用及创建项目 环境使用:微信开发者工具 一个微信号只能开发一个微信小程序. 在微信小程序开发手册下载最新版本,学习不要bet ...
- 基于有Vue基础的微信小程序开发学习笔记
微信小程序开发 文章目录 微信小程序开发 一.微信小程序介绍 二.小程序结构目录 1.小程序的文件结构 2.基本项目目录 三.配置文件详解 1.全局配置文件 2.页面配置文件 3.sitemap配置 ...
最新文章
- 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第2课2.6节隐藏和锁定对象...
- 李彦宏透露百度真正的护城河
- 修改Linux内核启动图片
- HTML DOM console.table() 方法
- 对HashMap数据结构的理解——加载因子和初始容量
- 怎么用python算单价和总价_用python计算最高投标限价
- Android Activity类详解
- linux下alias命令具体解释
- php手册 mac版,php中文手册for mac-php中文手册mac版下载v1.0.2 官方最新版__西西软件下载...
- QQ第三方登陆-极简版
- 收藏 | 基于深度学习的图像匹配技术一览
- c语言 字符串提取连续数字,c语言一串字符串中提取数字并相加的问题
- 7天java_7天学完Java基础之0/7
- 汽车尾气污染检测 尾气烟雾检测
- Kinect 2.0 安装体验
- eclipse切断_切断电源后在哪里传送天气频道
- 3d游戏设计读书笔记六
- Java Mail---SMTP协议-Java发邮件(带附件)演示过程
- QT字符文字转换语音播放
- Linux解决ip ping不通百度的问题