GTK+ 2.0 教学-比例元件 Scale Widgets

比例元件(Scale widgets)一般用于允许用户在一个指定的范围内可视地选择和操纵一个值。你会用到比例元件,例如,图片的缩放预览中调整放大倍数,或控制一种颜色的亮度,或指定荧幕保护启动之前不作用的时间。

[adsense][/adsense]

创建一个比例元件

像卷轴一样,有水平和垂直两种不同类型的比例元件。(大多数程式员似乎喜欢水平的比例元件。)既然在本质上它们的工作方式是相同的,那么不需要对它们分别对待。下面的函式分别创建垂直和水平的比例元件:

GtkWidget *gtk_vscale_new( GtkAdjustment *adjustment );

GtkWidget *gtk_vscale_new_with_range( gdouble min,
                                      gdouble max,
                                      gdouble step );

GtkWidget *gtk_hscale_new( GtkAdjustment *adjustment );

GtkWidget *gtk_hscale_new_with_range( gdouble min,
                                      gdouble max,
                                      gdouble step );

adjustment 参数可以是一个已经用 gtk_adjustment_new() 创建了的调整物件,或 NULL,此时,会创建一个匿名的调整物件,所有的值都设为0.0(在此处用处不大)。为了避免把自己搞糊涂,你可能想要创建一个 page_size 值设为 0.0 的调整物件,让它的 upper 值与用户能选择的最高值相对应。而 _new_with_range() 函式会照顾到创建一个适当的调整物件。(如果你已经彻底困惑了,看看调整物件这一章,它解释了调整物件的作用和怎样创建和操作它们。)

函式和信号(至少讲了函式)

比例元件可以在滑槽的旁边以数字形式显示其当前值。预设的行为是显示值,但是可以用下面这个函式改变其行为:

void gtk_scale_set_draw_value( GtkScale *scale,
                               gboolean draw_value );

可以猜到,draw_value取值为 TRUEFALSE,结果是显示或不显示。

预设情况下,比例元件显示的值,跟在它的调整物件中的value栏位一样,四舍五入到一位小数。可以用以下函式改变显示的小数位:

void gtk_scale_set_digits( GtkScale *scale,
                            gint     digits );

digits是要显示的小数位数。可以将digits设置为任意位数,但是实际上荧幕上最多只能显示13位小数。

最后,显示的值可以放在滑槽附近的不同位置:

void gtk_scale_set_value_pos( GtkScale        *scale,
                              GtkPositionType  pos );

参数posGtkPositionType类型,可以取以下值之一:

  GTK_POS_LEFT
  GTK_POS_RIGHT
  GTK_POS_TOP
  GTK_POS_BOTTOM

如果将值显示在滑槽的“侧面”(例如,在水平比例元件的滑槽的顶部和底部),显示的值将跟随滚轴上下移动。

所有前面讲的函式都在<gtk/gtkscale.h>里定义。当你包含了<gtk/gtk.h>文件时,所有 GTK 元件的标头档都自动包含了。但你应该去察看一下所有你感兴趣的元件的标头档,这样才能学到它们的更多的功能和特性。

Comments are closed.