`

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

 
阅读更多

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

一、什么是GNOME

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

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

二、什么是GIMPGTK+

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

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

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

三、GTK+使用的库

GTK+使用GLIB库和GDKGIMP Drawing KitGIMP绘图工具包)系列的开发库,GLIB定义了数据类型,提供了错误处理和内存管理方面的函数;而GDK则是本地图形化APIGTK+中间的一个过渡层,它需要依赖具体的计算机平台。因此,向其他计算机平台上移植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+工具库。


分享到:
评论

相关推荐

    GTK+2.0.pdf linux图形编程

    GTK+(GIMP Toolkit)是一款功能强大的开源图形界面开发库,主要用于Linux和其他类UNIX系统上开发跨平台的应用程序。GTK+2.0作为GTK的一个重要版本,提供了丰富的用户界面组件,帮助开发者快速构建美观且功能完备的...

    Gtk+2.0教程(Linux下的界面)

    ### Gtk+2.0教程(Linux下的界面) #### 简介 Gtk+(GIMP Toolkit)是一...通过本教程的学习,相信读者不仅能够熟练掌握Gtk+2.0的基本用法,还能深入理解其核心机制,并有能力开发出功能完善且美观的Linux桌面应用。

    gtk api api api

    ### GTK+2.0 教程知识点概览 #### 一、引言 GTK+(GIMP Toolkit)是一个跨平台的工具包,...通过上述内容的学习,读者可以系统地掌握 GTK+2.0 的核心知识和技术要点,并能够运用这些知识来开发高质量的 GUI 应用程序。

    嵌入式linux开发基础笔记

    了解各种编程模型,如POSIX接口、嵌入式图形库(如Qt、GTK+)和网络编程,对于开发高效的应用至关重要。 九、调试与优化 在开发过程中,使用GDB进行远程调试,使用strace和syslog分析系统调用和日志,可以帮助定位...

    gtk英文版资料

    本教程将深入剖析GTK+2.0的核心概念和实用技巧,尤其侧重于通过C语言接口进行GUI应用程序的开发,为读者提供一个由浅入深的学习路径。 #### 开始旅程:Hello World in GTK - **基础知识**:首先,我们将从最简单的...

    ubuntu下用gtk实现仿windows资源管理器

    GTK 是一套用于创建图形用户界面的跨平台工具包,广泛应用于 Linux 系统中的应用程序开发。它提供了丰富的控件和功能,支持多种操作系统和编译器,并且具有良好的可移植性。 **文件管理器功能设计** - **基本文件...

    嵌入式linux笔记.rar

    嵌入式Linux是一种将...总之,嵌入式Linux笔记涵盖了从硬件驱动到应用开发的全面知识,旨在帮助开发者理解和掌握嵌入式Linux系统的构建与优化。通过深入学习,你可以为各种嵌入式设备设计出高效、稳定的Linux系统。

    PHP学习总结笔记资料.pdf

    3. **桌面应用程序**:虽然PHP不是桌面应用的最佳选择,但通过PHP-GTK扩展,可以创建跨平台的图形用户界面应用程序。 【PHP基础】 PHP支持多种操作系统和Web服务器,提供过程化和面向对象两种编程方式。PHP 4虽然有...

    4412资料笔记 arm

    通过本资料的学习,您可以掌握嵌入式系统的概念、应用场景、ARM架构的基础知识、Exynos 4412 SoC的特性和使用方法、开发环境的搭建步骤以及具体的开发流程和技术细节。这不仅有助于初学者快速入门嵌入式开发领域,也...

    Gentoo Linux 安装手册

    - **图形化安装程序**:GTK+ Gentoo Linux Installer 是一个图形界面的安装工具,适用于那些更习惯于使用图形界面的用户。它提供了简单易用的 GUI 界面,方便您轻松设置选项。 - **易于使用的界面**:该安装程序通过...

    从Windows转向Linux教程E3000基础学习.pdf

    #### 写Linux学习笔记 建议读者在学习过程中记录重要的知识点和实践经验,这有助于巩固所学内容并便于日后查阅。 #### Linux文件系统目录结构简介 这部分内容介绍了Linux文件系统的组织结构,解释了如`/bin`, `/...

Global site tag (gtag.js) - Google Analytics