范围构件 Range Widgets

范围构件(Range Widgets)是一大类构件,包含常见的滚动条构件(Scrollbar Widgets)和较少见的“比例”构件(Scale Widgets)。尽管这两种构件是用于不同的目的,它们在功能和实现上都是非常相似的。所有范围构件共用一套公用的图形元素,每一个都有自己的 X 窗口,并能接收事件。它们都包含一个“滑槽(trough)”和一个“滑块(slider)”(在一些其它GUI环境下又称"thumbwheel")。用鼠标指针拖动滑块可以在滑槽中前后移动,在滑块前后的滑槽中点击,根据不同的鼠标按键,滑块就会向接近点击处的方向移动一点,或完全到位,或移动特定的距离。

在前面的调整对象里提到过,所有范围构件都是与一个调整对象相关联的。该对象会计算滑块的长度和在滑槽中的位置。当用户操纵滑块时,范围构件会改变调整对象的值。

滚动条构件 Scrollbar Widgets

这些都是标准的,到处被使用的滚动条(Scrollbar)。一般只用于滚动其它的构件,比如列表、文本构件,或视角构件(在很多情况下使用滚动窗口构件更方便)。对其它目的,应该使用比例构件,因为它更友好,而且有更多的特性。

分别有水平和垂直滚动条两种类型。实在不必对它们作说明。你用下面的函数创建滚动条:

GtkWidget *gtk_hscrollbar_new( GtkAdjustment *adjustment );

GtkWidget *gtk_vscrollbar_new( GtkAdjustment *adjustment );

这就是它们所有的相关函数(如果你不相信,去看一下它的头文件!)。adjustment参数可以是一个指向已有调整对象的指针或 NULL,当为NULL时会自动创建一个。如果希望将新创建的调整对象传递给其它构件的构建函数,例如文本构件的构建函数,在这种情况下指定NULL是很有用的。