跳转到内容

GTK+ 实例教程/主题

来自维基教科书,开放的书籍,开放的世界

本页旨在为在 Linux 和 Windows 上为 GTK+ 创建和修改主题提供指南。

自定义 GTK+ 应用程序的外观涉及修改 RC 文件,通常称为 gtkrc

GTKs rc 文件的解释。

[编辑 | 编辑源代码]

一些 Gtk 应用程序可能有很多 rc 文件。这些是初始化文件,通常从应用程序的首选项对话框修改。GTKRC 文件是纯文本文件,保存为 "gtkrc",没有扩展名。有关 GTK+ rc 文件格式的更多信息,请访问 http://library.gnome.org/devel/gtk-tutorial/stable/c2111.html 本指南将集中讨论用于调整应用程序外观和感觉的一个文件。

GTK+ rc 文件可以包含 4 个主要部分

  • 风格声明 - 项目如何在屏幕上绘制,
  • 类声明 - 将风格分配给类,
  • 小部件声明 - 将风格分配给小部件,
  • Widget_class 声明 - 通过类名将风格分配给特定小部件。


所有 GTK+ 程序都由小部件组成,每个小部件都有几个属性或标志可以设置

  • fg - 修改小部件的前景,
  • bg - 修改小部件的背景,
  • base - 小部件的可编辑、树或列表背景,
  • bg_pixmap - 将图像分配给小部件的背景,
  • font - 更改字体属性。


并且这些中的每一个都可能有多个状态

  • [NORMAL] - 小部件的正常状态,
  • [PRELIGHT] - 当鼠标光标悬停在小部件上时(按钮及其子类使用此方法),
  • [ACTIVE] - 对于活动的小部件,例如选定的选项卡和滚动条,
  • [INSENSITIVE] - 禁用的小部件,
  • [SELECTED] - 小部件中突出显示的对象,例如文本。


可以使用 3 种不同的方法之一设置这些颜色

  1. GTK+ 字符串 - 这是一个介于 0 和 1 之间的数字,
  2. 十六进制 - 与某些网站相同,值以这种方式设置 - #000000,可以是 00 到 ff 之间的任何值,
  3. RGB - 这是一个介于 0 和 256 之间的任何数字,例如 256 256 256,

要调整小部件的属性,您需要先定义一个风格。

风格声明可能看起来像这样:-

style "default"
{
    font = "-*-helvetica-medium-r-normal--*-120-*-*-*-*-*-*"
    fg[NORMAL] = "#000000"
    fg[PRELIGHT] = "#000000"
    fg[ACTIVE] = "#000000"
    fg[SELECTED] = "#000000"
    fg[INSENSITIVE] = "#999999"
}

第一行是风格声明,此行定义了一个新的风格并将其称为默认(当然,它可以被调用为任何您想要的名字)。以下几行是实际的风格。但是,为了应用它,它需要被分配给一个 GTK+ 小部件。

Gtk 小部件

[编辑 | 编辑源代码]

GTK 系统中有很多小部件,但为了便于本教程,我们将定位最顶层的父小部件,称为 - widget_class "GtkWindow",所有其他小部件都将从它获取风格。要将风格分配给小部件,可以使用

widget_class "GtkWindow" style "window"

这指示名为 "GtkWindow" 的小部件使用 "window" 风格。

当上面的代码被复制到 gtkrc 文件中,并与

widget_class "GtkWindow" style "default"

一起保存到 "theme" 文件夹中时,下次启动或重新启动 GTKApplication 时应该会注意到差异。

扩展到包含图像

[编辑 | 编辑源代码]

要在主题中包含图像,您需要创建这些图像并将其保存在与先前创建的 gtkrc 文件相同的文件夹中。保存好之后,您需要编辑该文件来使用图像。

style "Button"
{
    bg_pixmap[NORMAL] = "warning.xpm"
}

这是一个使用图像的示例(请注意,您需要在 GIMP 中创建 warning.xpm 才能使其生效)。

华夏公益教科书