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

GTK, GTK+, and Qt are GUI toolkits. These are libraries that developers use to design graphical interfaces, all running on top of the X Server or Wayland. These are things that you need to install as dependencies. They're the Linux "equivalent" to Windows' GDI/GDI+. When an application uses any of these, it will usually have a general "look and feel".

GNOME and KDE are Desktop Environments. GNOME primarily uses the GTK+ toolkit, while KDE primarily uses the Qt toolkit. There are applications designed for GNOME or KDE, such as a settings menu or a default music player, usually in the appropriate toolkit. These Desktop Environments have a set of utilities/window managers/design specification to create a more unified desktop. You can mix the two if you feel like it, but you may run into issues with colliding standards and applications (which is a bit more common on systems like Arch).

Unity uses many of the GNOME utilities and backends (Nautilus, Rhythmbox, gvfs, etc.), so Unity is more GNOME than KDE.

One A GNOME program uses multiple libraries to form a hierarchy:

The Gnome library is at the top level, including help routines, classes, and special widgets, and provides an infrastructure for your application.

The second layer is GTK, which is part of the GTK + library. This library provides a basic toolkit and widget to create GUI applications. Most GUIs are written directly with GTK. GTK also provides a powerful object system for the GNOME library.

The next layer is GDK, which is simply packaged with the X function library, which is only used when we make special drawings or set the special properties of the window.

The bottom layer is glib, a utility library for C, which includes portability and some utility functions, as well as some container classes, such as lists, variable groups, variable-length strings, hashes (seemingly Hassi), caching, an event loop, and other useful constructs

小结:

  • GLib 是基础对象库,不涉及任何图形绘制。
  • GDK 是图形绘制库,如果想定制化widget,则再此层实现。不太需要关心。
  • GTK GTK+ 和 Qt 都是 GUI 库,同级别。设备事件管理和窗口管理都在在这一层。
  • GNome 和 KDE 是对 GUI 库的二次封装。

一般开发触及到 GNome 和 GTK/GTK+ 即可。

相关推荐
先做个垃圾出来………9 小时前
算子推理是什么
其他
Shining05961 天前
Datawhale AI 夏令营—科大讯飞AI大赛(大模型技术)—让大模型理解表格数据(列车信息表)
人工智能·学习·其他
草莓熊Lotso2 天前
【LeetCode刷题指南】--有效的括号
c语言·数据结构·其他·算法·leetcode·刷题
xiaobin889992 天前
PowerDesigner安装教程(附加安装包)PowerDesigner详细安装教程PowerDesigner 16.6 最新版安装教程
数据库·其他
JiNan.YouQuan.Soft3 天前
Windows下编译libarchive
其他
zenithdev13 天前
PyCharm安装教程(附加安装包)PyCharm详细安装教程PyCharm 2025 最新版安装教程
ide·python·其他·pycharm
草莓熊Lotso4 天前
【数据结构初阶】--树和二叉树先导篇
c语言·数据结构·经验分享·其他
不爱说话的采儿5 天前
UE5保姆级基础教程(第五章)
经验分享·其他·ue5·游戏引擎·课程设计
Shining05965 天前
Datawhale AI 夏令营-心理健康Agent开发学习-Task1
人工智能·学习·其他·agent
骁的小小站7 天前
The Missing Semester of Your CS Education 学习笔记以及一些拓展知识(三)
开发语言·经验分享·笔记·学习·其他·bash·excel