以下示例说明了 rc 文件的格式。它取自 GTK 发行包中名为 testgtkrc 的文件中,但我增加了一些注解和内容。你也许希望在自己的应用程序中包含这些注解以有助于用户在使用过程中进行小调整。

    有几个指令用于改变一个构件的属性:

    • fg - 设置构件的背景色。
    • bg - 设置构件的前景色。
    • bg_pixmap - 设置构件的背景为一幅像素图。
    • font - 设置构件使用的字体。

    另外,一个构件可以有几种状态,你可以为每种状态设置不同的颜色,图像和字体。这些状态是:

    • NORMAL - 构件的一般状态,如鼠标不位于构件上方,键未按下时构件所处的状态。
    • PRELIGHT - 当鼠标移到构件上方,在此状态下定义的颜色生效。
    • ACTIVE - 当处于构件上的鼠标键被按下或点击时,该构件被激活,相应的属性值将生效。
    • INSENSITIVE - 当构件被设置为不敏感(insensitive)时,它不能被激活,相应属性值起作用。
    • SELECTED - 选中一个对象时,取相应的属性值。

    当用”fg”和”bg”关键字设置构件的颜色时,其格式是:

    fg[<STATE>] = { Red, Green, Blue }

    这里STATE是前述状态(PRELIGHT,ACTIVE,…)之一,Red,Green,Blue是范围0-1.0间的数值,{1.0,1.0,1.0}表示白色。这些数值必须是浮点型的,否则将被存为0,因此写为”1”的数值是无效的,应写为”1.0”.0值写为”0”却不错,因为即使系统认不出也没关系。所有系统不认识的数值都会被设为0。

    bg_pixmap除了用一个文件名取代颜色名外和以上格式很相似。

    pixmap_path是一个由‘:’分隔开的路径表。当搜索你定义的图像文件时选择这些路径。

    字体命令简单的就是:

    font = "<font name>"

    唯一困难的是描述字体的字符串部分。用 xfontsel 或类似工具会有帮助。

    “widget_class” 设置一类构件的风格。这些类在构件概述中的类组织里列出。

    “widget” 指令把一个特别命名的构件集设置为一个要求的风格,覆盖所有已有的风格。这些构件使用 widgetset_name() 函数调用在应用程序中注册。这样你可以设置任一组构件的属性,而不是设置整个构件类的属性。我请求你为这些特定名称的构件写好文档,用户可能要定制它们。

    当使用关键字parent作为属性值时,这个构件将继承它的父构件的属性。

    定义一个风格时,可能会将以前定义风格的属性值分配给新定义的风格。

    style "main_button" = "button"
    {
        font = "-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
        bg[PRELIGHT] = { 0.75, 0, 0 }
    }

    这个示例用”button构件的风格创建了一个新的 “main_button” 构件的风格,只改变 “button” 构件风格中的 font 属性和 prelight 背景色属性。

    当然,许多属性不能应用在所有构件上,按常识这是不难分辨的。而任何能在一个构件上起作用的东西,都应能作为它的属性。