GTK、GDK、GLIB三者的关系

从GTK、GLib到GObject与GType历史梳理 1. KDE与GNOME 1.1 X Window System 微软Windows取得市场地位后,unix业界也急于开发类似的图形化操作系统。麻省理工学院(MIT)在1984年与当时的DEC公司合作,致力于在UNIX系统上开发一个分散式的视窗环境X Window。作为图形环境与UNIX系统内核沟通的中间桥梁,任何厂商都可以在X Window基础上开发出不同的GUI图形环境。 X Window使用X-Server作为Ui与系统交互的桥梁,UI不直接与系统交互,因此拥有很强的设计灵活性和可移植性,但因此决定了 阅读详情

什么是Xlib?

The X Library是X Window程式最低階的API,如果拿來和Windows 比較起來,Xlib 就和Windows APIs(或稱 Windows SDK)一樣,算是最接近 X Server的程序設计介面,它只提供最基本的绘图和訊息事件的處理。

 

什么是Xt?(X Toolkit Intrinsics) Xt是第一個把Xlib包裝成更抽象化的函式庫,它提供了「物件導向」的程式設計架構,並且引進了一種稱為「widget」的概念,這種「widget」資料結構也就是所謂的「User Interface Componets」像是menus、buttons或是TextBox等widgets。從此以後程式設計師就可以用widget的觀念,來架構我們的應用程式,讓程式變得簡單且容易了解。 不過Xt只定義了應用程式要如何和這些 widgets 溝通,並沒有規定這些 widgets 的外觀要長甚麼模樣。這些widgets真正的樣子最後還是得靠更高層的函式庫來處理。(通常提供 widgets 的函式庫,我們就稱之為GUI Toolkit(X ToolKits)。

 

Motif、OpenLook 和 Lesstif 等便都是從 Xt Library 衍生而來的圖形介面函式庫 Motif Motif 為目前最主要的 GUI Toolkit,它便是以Xt的widget 概念為基礎,提供外觀和Microsoft Windows 95極為類似的圖形介面。Motif 是由 Open Group (以前叫 Open Software Foundation) 所出產。 不過現在的 Motif 已經不只是單純的GUI Toolkit了,它也包含了一個Motif window manager(窗口管理器)用來管理X Clients (X Applications)。

 

 什么是GDK? GDK是标准Xlib函数调用的一个基本封装(wrapper),如果你对Xlib很熟悉,就不需要来重新熟悉绝大多数的GDK函数.所有的函数都是为了提供一个方便直观的风格来访问Xlib函数库.另外,自从GDK使用GLib,在多平台上使用时,GDK变得更加的方便和安全.

 

什么是GLib? GLib库提供了一系列函数(functions)和定义(definitions),在设计GDK和GTK程序时很有用.它提供了一些标准c函数库(standard libc)的替代函数,比如malloc,但在其他的系统上使用时有很多问题. 什么是GTK+? GTK+是一个小型而高效的控件库,具有Motif的外观和风格.实际上,它比Motif看起来好多了,它包含有基本的控件和一些很复杂的的控件:例如文件选择、控件和颜色选择控件. GTK+提供了一些独特的特性,(至少,我知道其他的控件库不提供他们),例如,按钮不提供标签,它包含了一个子控件,在很多的时候是一个标签,但是,这个子控件也可以是一个映射,图像或者任何其他的程序员想要的集合.在整个的库中,你随处可见这种伸缩性. Gnome的开发基础结构是围绕一组函数库的,所有的内容都是用可移植的ANSI C语言写成的,可以用于所有类UNIX系统,与图形相关的函数库依赖于X Window系统。 Gnome函数库是最高层的。

 

GTK+由两部分组成,GTK和GDK。 GTK层为C语言提供了一个对象模型,并为UI工具包提供了最基本的widget,它是上层GUI派生的基础。 GTK是依赖于GDK的,GDK是Xlib的一个底层包装,Xlib库直接与X服务器对话。除了Xlib以外的任何部分都是基于GLib的,它是一个有用的C函数库,提供了很多实用程序和可移植的功能以及一组容易被C语言使用的容器。 一个Gnome程序是使用多个库组成的层次结构: GNOME (GNU Network Object Model Environment)是以GTK為基礎的圖形介面函式庫。和KDE一樣,GNOME 也是以建立一個完整、友善的圖形使用環境為目標,並提供GNOME相關的軟體。 Gnome库在最高层,包括帮助例程,类和特殊的widget,并为应用程序提供一个基础架构。 第二层是GTK,它是GTK+库的一部分。这个库提供了基本的工具包和widget来创建GUI应用程序。大多数GUI是直接用GTK编写的。GTK同时为Gnome库提供了一个功能强大的对象系统。 再下一层是GDK,它简单的对X函数库进行了包装,只有在我们进行特殊绘画或设置窗口的特殊属性的时候才会用到它. 最下面一层是Glib,它是C的一个实用程序库,包括可移植性和一些实用程序功能,以及一些容器类,例如:链表,可变数组,变长字符串,HASH(貌似是哈西表),缓存,一个事件循环和其他有用的结构

GTK简介 - 层次、信号、事件 下面的内容是初学GTK时给同学做的一个介绍内容,更为详细的可以参考:http://apps.hi.baidu.com/share/detail/19271271 要弄懂GTK,我们先从GTK的层次下手,先是几个概念: XWindow系统 GDK GLib GTK+ XWindow系统: X Window,即X W 阅读详情

相关推荐

基于Kubernetes的ML平台架构设计

本文在Kubernetes开源组件的基础上,对ML平台各部分组件的作用进行了介绍,并且进行了组件选型,初步设计了ML平台的技术架构。

2401_83124266的博客 2052

GTK、GDK、GLIB三者的关系基于X的GNOME、GTK、GDK、XLib、GLib等之间的关系

<br />原始地址:http://space.oss.org.cn/space.php?uid=3&do=blog&id=38<br />什么是Xlib? <br />The X Library是X Window程式最低階的API,如果拿來和Windows 比較起來,Xlib 就和Windows APIs(或稱 Windows SDK)一樣,算是最接近 X Server的程序設计介面,它只提供最基本的绘图和訊息事件的處理。 <br />  <br />什么是Xt?(X Toolkit Intrinsics

shlpyy的专栏 770

Ubuntu 20.04 环境下Autoware.universe 与 Carla 0.9.13 联合仿真

安装内容: ROS Galactic Autoware.universe based on ROS Galactic Carla 0.9.13 UnrealEngine 4.26 Openplanner (additional files: op-bridge/op-agent/scenariorunner/map data)

mhl1107的博客 1799

GTK、GDK、GLIB三者的关系 - 阿堂的专栏 - 博客频道 - 优快云.NET

GTK、GDK、GLIB三者的关系 - 阿堂的专栏 - 博客频道 - 优快云.NET GTK、GDK、GLIB三者的关系 - 阿堂的专栏 - 博客频道 - 优快云.NET GTK、GDK、GLIB三者的关系 分类: GTK+/DirectFB学习笔记 200...

172

dify1.3.1应用服务与数据服务分离,附件及插件包迁移至minio,实现离线部署,保证插件正常运行

dify1.3.1应用服务与数据服务分离,附件及插件包迁移至minio,实现离线部署,保证插件正常运行

Time_1023的博客 1873

多思计组实验实验三、存储器读写实验

实验三、存储器读写实验

qq_53089329的博客 3652

基于X的GNOME、GTK、GDK、XLib、GLib等之间的关系

常见的Linux下面的库很多, libc, glibc; glib, gdk, gtk, 太多了。但是这些库是有层次关系的. 1. libc & glibc libc 是 Linux 下的 ANSI C 函数库;glibc 是 Linux 下的 GUN C 函数库。 glibc是linux下面c标准库的实现,即GNU C Library。glibc本身是GNU旗下的C标准库,后来逐渐成为了Linux的标准c库,...

南沙的星星 1624

STM32 驱动直流无刷电机(BLDC)发声

STM32 驱动直流无刷电机(BLDC)发声

perseverance51博客 3403

[其他] GNome KDE / GTK GTK+ Qt / GDK / Glib

forOne。

ykun089的博客 1322

第201期 解锁科研效率新高度:Claude 科学技能插件(claude-scientific-skills)深度体验

科研AI助手Claude Scientific Skills开源工具为Claude大模型扩展科学能力,覆盖数据可视化、数学计算、学术格式处理等科研全流程需求。该插件支持LaTeX公式生成、自动化科研图表绘制、学术文档规范校正等功能,让研究人员通过自然语言指令即可完成专业任务。项目开源可定制,支持特定学科需求扩展,目前已托管于GitHub。使用门槛低,只需配置Claude API密钥即可快速启用,帮助科研人员从繁琐技术细节中解放,聚焦核心研究创新。

全网120W+关注AI拉呱,专注人工智能以及科技前沿! 1359

SAP UI5 控件剖析系列之 sap.m.DatePicker:单日选择的工程化用法、最佳实践与常见坑

在 SAP UI5 的输入控件族里,是最常被使用的日期选择控件。它把一个可编辑的输入框与一个弹出的日历整合在一起,允许用户用触摸、鼠标或键盘在本地化格式下选择某一天;控件既可以从弹出的日历里点选,也可以直接在输入框里键入日期。官方 Fiori 设计规范对它的定位就是:完成单个日期的选择,不牵涉时间,也不负责跨天的范围选择。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 343

GTK、GDK、GLIB、Gnome的关系

为什么80%的码农都做不了架构师?>>> ...

weixin_33700350的博客 1066

【推荐100个unity插件】Animator 的替代品?—— Animancer Pro插件的使用介绍

Animancer与Unity Animator对比及使用指南 摘要: 本文对比了Animancer与Unity官方Animator的核心差异,分析了Animancer的优势特点。Animancer采用代码驱动模式,相比Animator的状态机系统更灵活高效,支持实时调试、动态混合和深度逻辑集成。文章详细介绍了Animancer的快速使用方法,包括动画播放、切换和触发机制,并区分了免费版与专业版的功能差异。适合需要高效动画开发、复杂交互逻辑的中小项目,为开发者提供了一种现代化的动画解决方案。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2434

深入 TanStack Query 类型系统:preact-query 中 UnusedSkipTokenOptions 与 queryOptions 的类型守卫设计

`UnusedSkipTokenOptions` 是 [@tanstack/preact-query](https://link.gitcode.com/i/a0aa08f3a548601c867c7bff6b4f6302) 包中供 `queryOptions` 工厂函数使用的"重载专用"选项类型。它的职责非常精确:当调用 `queryOptions` 时**没有传入 `initialData`、

gitblog_00235的博客 343

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: QT4.6.3 + VS2008安装配置全过程
下一篇: GTK+与MFC不完全对比
scwinter
博客等级 码龄19年 23粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值