GTK+ 及X window简介

GTK+简介:

GTK+(The GIMP Toolkit)最初是为一个叫做GIMP的点阵图图像编辑器的软件设计的,由Peter Mattis,Spencer Kimball和Josh MacDonald于1997年在加州大学伯克利分校的eXperimental Computing Facility完成。GTK+后来被作为GNOME和XFCE这两个主流linux桌面环境的默认图像开发包。开始GTK+用于linux操作系统,后来又扩展到支持其他的类UNXI系统,像微软的windows,BeOS,Solaris,Mac
OS X等待。

GTK+正处在第二个稳定发行周期中,即GTK+2。因为要添加一些新的特性以及它的开发者想让它摆脱对API的依赖性,所以对GTK的第一个发行版本做了大幅度的修改。由于这两个版本的GTK+是不兼容的,因此可以同时安装它们两个。当你在构建应用时,你就要让编译器搞清楚你要用的是GTK+2.0而不是1.0。

GTK+2.0增加了很多新的特性,包括Pango这个字体渲染引擎和一个新增强的主题引擎。同时ATK(Accessibility Toolkit)极大地增强了系统的可接入性。

X window系统:

1984年,Jim Gettys 和Bob Scheifler在MIT开发了X window系统(X11)作为Argus系统跨平台调试环境。通过X.Org Foundation的进一步开发,X11已经成为了linux和类UNIX系统上标准的display manager。例如在一些基础方面,X11提供了位图显示的窗口功能。

尽管linux上使用X window,但其他的操作系统例如微软的window并未使用。所以GTK+的另一个优势就是它可以进行底层渲染系统的交流而不用管具体的系统是什么。你的代码是一模一样的,不管你是为linux,windows或者Mac OS X写的.

现在回到linux上来,X11用它最基本和最抽象的方式管理窗口。它在屏幕上画出窗口并且处理它们的动作。X11也在图像环境中控制输入设备,像鼠标和键盘。X11的基本编程接口,Xlib提供了编写图形界面的基本工具。尽管可以用Xlib来进行开发,但是多数的程序员更喜欢使用类似GTK+的图形工具包,因为所有底层的调用都由库管理或隐藏了起来。

一个将X11和其他display manager区别开来的重要特性是X11假设用户和服务器是被独立区别对待的。这就允许用户在远程端独立于服务器存在。X window的另一个优点是它不强制授权用户界面并且允许window manager的图形界面高度定制。这也是为什么window manager能提供如此不同的界面和主题。它保证了linux用户享有自由选择的权利。

具有嘲讽意味的是,这种自由同时也是对X11的最大批评之一。许多人担心这会造成linux社区开发者的分裂。不过直到现在我们依旧能够自由选择我们需要的window manager。因为GTK+的存在,作为程序员,你不必和X window 系统直接通信。你可以创建窗口和构件,也可以处理这些构件和用户间的通信。但是所有直接的屏幕渲染和Xlib的功能函数调用都是自动完成的。所以我们接下来不会涉及更多的关于X window系统的东西而将更多地专注于GTK+的函数库。

----------------《Foundations of GTK+ Development》

时间: 2024-10-09 03:33:33

GTK+ 及X window简介的相关文章

GTK+浅谈之一Windows10下QtCreator中GTK+环境搭建(十几篇)

一.简介 虽然GTK+是Linux下的开发环境,因为其跨平台特性,有时候需要在Windows上用到它的.如下是在Windows10下配置GTK+的开发环境.        Gnome的开发基础结构是围绕一组函数库的,所有的内容都是用可移植的ANSI C语言写成的,可以用于所有类UNIX系统,与图形相关的函数库依赖于X Window系统. Gnome函数库是最高层的.GTK+由两部分组成,GTK和GDK. GTK层为C语言提供了一个对象模型,并为UI工具包提供了最基本的widget,它是上层GUI

C语言基于GTK+Libvlc实现的简易视频播放器

小编心语:现下,各种视频播放软件层出不穷,竞争也越演越烈,不知道大家有木有这个想法,小编有时在想能不能做一款属于自己的视频播放器呢~小编特意去实验楼,整理出了这篇关于如何实现简易视频播放器的博文.简易播放器,你值得拥有~ 友情提示:这里只是前篇,只是一些简单的功能,其他功能将会在后篇为大家介绍-- C语言基于GTK+Libvlc实现的简易视频播放器 一.课程说明 如果你学习过之前上线的pygtk实现有道词典的项目课,那应该对gtk的使用有一些了解了,这个项目课学起来会相对轻松一些. 关于Gtk或

Ubuntu下GTK的安装、编译和测试

我利用此方法成功在UBUNTU 10.04下安装GTK 2.20.1. 一.安装 1.安装gcc/g++/gdb/make 等基本编程工具 $sudo apt-get install build-essential 2.安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件 $sudo apt-get install gnome-core-devel 3.用于在编译GTK程序时自动找出头文件及库文件位置 $sudo apt-get install pkg-config

Windows GTK+ 环境搭建(详解)

来源:http://blog.sina.com.cn/s/blog_a6fb6cc901017ygy.html Windows GTK+ 环境搭建 最近要做界面的一些东西,但是对微软提供的类库MFC不是很熟悉,里面封装了大量的Windows API比较麻烦,然后就想着其他方式吧!Qt.GTK+原本想学学Qt的,Qt跨平台.文档也多点,使用也更广泛.但是Qt的插件一直没有下载下来,然后就先学习学习GTK+吧! 在网上搜了好多关于Windows GTK+环境搭建的方法,但是很多说的都不是很清楚,所以

X window设定介绍

1.X window简介: 1)在Unix Like上面的图形用户接口(GUI)被称为为X或X11 2)X11是一个软件而不是操作系统 3)较著名的X版本是X11R6这一版,目前大部分X都是由这一版演化出来的. 4)X Window最早是由MIT在1984年开发出来的. 2.linux下的X window是建立在通信的基础上的,分为两个部分X Server和X Client两部分: 1)X Server:进行硬件管理,屏幕绘制与提供字型功能,X Server管理的设备主要是I/O相关的,包括键盘

gtk+3.0的环境配置及基于gtk+3.0的python简单例子

/*********************************************************************  * Author  : Samson  * Date    : 06/25/2014  * Test platform:  *              Mint 15  *              GNU bash, version 4.2.45  * *************************************************

理解Window和WindowManger

一.Window简介 作用:桌面上显示一个类似悬浮的东西. 介绍:Window是一个抽象类,实现是由PhoneWindow.WindowManager是外界访问Window的入口.但是最终实现是在WindowService中.WindowManger和WindowService是IPC交互.Andorid所有的视图都是由Window实现的,所以Window是View的直接管理者.(从第四章也知道) 二.Window和WindowManager (一).如何添加一个Window到WindowMan

UIView UIWindow

一.window 简介 window 是窗口,每个app都要借助window将内容展现给用户看. 在iOS中,通常使用UIWIndow类来表示窗口,通常一个应用程序只创建一个UIWIndow对象. 二.创建UIWindow // 1.创建window对象 self.window = [[[UIWindow alloc] init] autorelease]; // 2.设置window的位置和大小,(window大小和屏幕一样大,位置为0,0) self.window.frame = [UISc

win7(64bit)使用mingw64配置gtkmm

因为linux命令不熟悉,加上时间不充裕,仍然决定在win7_64bit下开发GUI程序,选择gtkmm是因为: 1. 在图形界面程序中,windows系统当之无愧GUI之王,用户友好性其他OS无法替代 2. Qt虽然版权放开了,但Qt信号机制让人不爽,过于紧耦合的设计让我感觉不像用C++写程序 3. wxWidget是一个很好的图形库,可以过度的宏包装形成的抽象,与微软的mfc一样滥 4. windows自带的api包倒是不错的选择,但是API繁琐且是C语言封装,很多地方设计不合理,留给程序员