「GUI frameworks」- 杂记

这一部分是简单介绍一些「图形工具库」的内容。

背景……

因为GTK 3的主题不紧凑,按钮、标题栏太宽,太占空间,所以尝试着写个GTK 3的主题。

我们常说的“GTK”是一个跨平台的「图形工具库」。所以,这里先简单的了解一下「图形工具库」,对「图形工具库」有个基本的概念。

什么是「图形工具库」?

它就是一个库,或者说是框架,通过调用库里的方法来创建窗口界面中按钮、输入框、下拉选等等“部件”。

大多数「图形工具库」还包括他们自己的渲染引擎。渲染引擎可以简单的理解为“在显示器上显示图形的程序”,显示器上显示的内容使用渲染引擎绘制的。

像按钮的宽高、颜色这些“部件的样子“可以硬编码到程序中,或者写入配置文件,然后从配置文件中读取,这些配置文件就是我们说的主题/皮肤。

我们常说的GTK、QT、FLTK都是一些「图形工具库」。

图形工具库的分类

有些图形工具库集成在操作系统中,比如OS X的Cocoa、Microsoft Windows的Windows API等等。

还有些在操作系统之上的单独的层中工作,比如X Window System提供了Xt(X Toolkit Intrinsics),但是Xt只有一些老的工具库在使用,而GTK和QT则绕过了Xt,直接使用了Xlib或XCB库:

参考文献

Wikipedia/Widget toolkit
Wikipedia/List of widget toolkits
Setting gtk2 and gtk3 theme via config file