VC2005使用GTK+(2)

来源:互联网 发布:淘宝图片空间美图秀秀 编辑:程序博客网 时间:2024/06/05 16:38

一 些 GTK 构件没有与之相关联的 X 窗口,所以它们只在其父构件上显示其外观。由于这个

原因,它们不能接收任何事件,并且,如果它们尺寸设置不正确,它们也不会自动剪裁(译者

注:裁剪就是使 构件只显示一部分),这样可能会把界面弄得乱糟糟的。如果要想构件
接收事件,可以使用事件盒(EventBox)。初 一看,事件盒构件好像完全没有什么用。它在屏

幕上什么也不画,并且对事件也不做响应。但是,它有一个功能:为它的子构件提供一
个 X 窗口。因为许多G T K构件并没有相关联的 X 窗口,所以这一点很重要。虽然没有 X

窗口会节省内存,提高系统性能,但它也有一些弱点。没有 X 窗口的构件不能接收事件,并

且对它的任何内容不能实施剪裁。虽然事件盒构件的名称事件盒强调了它的事件处理功能,
它也能用于剪裁构件.
    用以下函数创建一个新的事件盒构件:
GtkWidget *gtk_event_box_new( void );
然后子构件就可以添加到这个事件盒里面:
gtk_container_add (GTK_CONTAINER (event_box), child_widget);


GTK 有自己缺省处理应用程序的方法,这就是使用rc配置文件。这些文件可用于给几乎任何

构件设置颜色,也能为一些构件的背景贴上
一幅像素图。

rc 文件的功能
在你的应用程序开始处,应包含一个如下的函数调用:
void gtk_rc_parse( char *filename );
把 rc 文件名传递给被调用的函数,随后 GTK 会解析这个文件,并且使用文件中所定义构件

类型的风格设置。如果希望定义一套和其它构件集或同一构件集中其它逻辑部分具有不同风

格的特定构件集,使用以下函数调用:
void gtk_widget_set_name( GtkWidget *widget,
gchar *name );
把新创建的构件作为第一个参数,把你给该构件定的名程作为第二个参数。这使你能够在 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。