gtk

来源:互联网 发布:北京市十一学校 知乎 编辑:程序博客网 时间:2024/04/29 17:25

gtk_box_pack_start( GtkBox *box,
GtkWidget *child,
gboolean expand,
gboolean fill,

guint padding );

第一个参数是你要把对象组装进去的盒,第二个就是该对象。目前这些对象将都是按钮,即我们要将这些按钮组装到盒中。
gtk_box_pack_start() 和 gtk_box_pack_end() 中的 expand 参数是用来控制构件在盒中是充满所有多余空间这样盒会扩展到充满所有分配给它的空间(TURE);还是盒收缩到仅仅符合构件的大小(FALSE)。设置 expand 为 FALSE 将允许你向左或向右对齐你的构件。否则,它们会在盒中展开,同样的效果只要用 gkt_box_pack_start() 或 gtk_box_pack_end() 之一就能实现。
fill 参数在 gtk_box_pack 中控制多余空间是分配给对象本身(TRUE),还是让多余空间围绕在这些对象周围分布(FALSE)。它只有在 expand 参数也为 TRUE 时才会生效。

GtkWidget *gtk_hbox_new ( gboolean homogeneous,
gint spacing );
gtk_hbox_new() 的 homogeneous 参数(对于gtk_vbox_new()也是一样)控制是否盒里的每个对象具有相同的大小(例如,在横向盒中等宽,或在纵向盒中等高)。若它被设置,gtk_box_pack()常规函数的expand参数就被忽略了,它本质上总被开启。

GTK 的 rc 文件

GTK 有自己缺省处理应用程序的方法,这就是使用rc配置文件。这些文件可用于给几乎任何构件设置颜色,也能为一些构件的背景贴上一幅像素图。
rc 文件的功能
在你的应用程序开始处,应包含一个如下的函数调用:
void gtk_rc_parse( char *filename );
把 rc 文件名传递给被调用的函数,随后 GTK 会解析这个文件,并且使用文件中所定义构件类型的风格设置。
-如果希望定义一套和其它构件集或同一构件集中其它逻辑部分具有不同风格的特定构件集,使用以下函数调用:
void gtk_widget_set_name( GtkWidget *widget,
gchar *name );

把新创建的构件作为第一个参数,把你给该构件定的名程作为第二个参数。这使你能够在 rc 文件中按名称更改这个构件的属性。

"widget_class" 设置一类构件的风格。这些类在构件概述中的类组织里列出。
"widget" 指令把一个特别命名的构件集设置为一个要求的风格,覆盖所有已有的风格。这些构件使用 _widget_set_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 背景色属性。

如果我们使用了一个如下的函数调用:
button = gtk_button_new_with_label ("Special Button");

gtk_widget_set_name (button,"special button");

gtk_widget_set_name (button,"special button");
那么这个按钮取名为"special button",并且在 rc 文件中可能通过像"special button.GtkButton"这样的名称找到它。[<--- Verify ME!]
后面作为示例的 rc 文件,设置主窗口的属性,告诉所有子窗口继承在"main button"风格项中规定的风格。在应用程序中的代码为:
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_name (window, "main window");
然后在 rc 文件中用如下一行定义它的风格:
widget "main window.*GtkButton*" style "main_button"
该定义把"主窗口"中的所有按钮构件设置为 rc 文件中定义的"main_buttons"风格。


GTK rc 文件的格式


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>"

0 0
原创粉丝点击