|
|
发表于 2006-3-9 18:10:26
|
显示全部楼层
rc是一个配置文件。该文件可用于给几乎任何控件设置颜色,也能为一些控件的背景贴上一幅像素图。
比如一开始要gtk_rc_parse("filename.rc")
然后你要给某个控件设置颜色啊背景图啊,
比如一个fixed,就要gtk_widget_set_name(fixed,"stye1")
然后有一个label,你要设置不同的颜色或是背景图gtk_widget_set_name(label,"stye2");
.....
在filename.rc文件里
# pixmap_path "<dir 1>:<dir 2>:<dir 3>:..."
#
pixmap_path "/tmp/........./pixmaps"
#
# style style1
# {
# <option>
# }
#style style2
#{
# <option>
#}
# widget <style1> style <style1>
# widget_class<style1> style <style1>
.......略
其中option可以为:
有几个指令用于改变一个控件的属性。
• 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是一个由‘:’分隔开的路径表。当搜索你定义的图像文件时选择这些路径。
"widget_class" 设置一类控件的风格。这些类在控件概述中的类组织里列出。
"widget" 指令把一个特别命名的控件集设置为一个要求的风格,覆盖所有已有的风格。这些控件使用 _widget_set_name() 函数调用在应用程序中注册。这样你可以设置任一组控件的属性,而不是设置整个控件类的属性。我请求你为这些特定名称的控件写好文档,用户可能要定制它们。
当使用关键字parent作为属性值时,这个控件将继承它的父控件的属性。
定义一个风格时,可能会将以前定义风格的属性值分配给新定义的风格。
style "main_button" = "button"
{
bg[PRELIGHT] = { 0.75, 0, 0 }
}
这个示例用"button控件的风格创建了一个新的 "main_button" 控件的风格,只改变 "button" 控件风格中的 font 属性和 prelight 背景色属性。
当然,许多属性不能应用在所有控件上,按常识这是不难分辨的。而任何能在一个控件上起作用的东西,都应能作为它的属性。
建议找一本gtk编程的书详细的看看 |
|