比例元件(Scale widgets)一般用於允許用戶在一個指定的範圍內可視地選擇和操縱一個值。你會用到比例元件,例如,圖片的縮放預覽中調整放大倍數,或控制一種顏色的亮度,或指定螢幕保護啟動之前不作用的時間。
創建一個比例元件
像捲軸一樣,有水平和垂直兩種不同類型的比例元件。(大多數程式員似乎喜歡水平的比例元件。)既然在本質上它們的工作方式是相同的,那麼不需要對它們分別對待。下面的函式分別創建垂直和水平的比例元件:
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取值為 TRUE 或 FALSE,結果是顯示或不顯示。
預設情況下,比例元件顯示的值,跟在它的調整物件中的value欄位一樣,四捨五入到一位小數。可以用以下函式改變顯示的小數位:
void gtk_scale_set_digits( GtkScale *scale, gint digits ); |
digits是要顯示的小數位數。可以將digits設置為任意位數,但是實際上螢幕上最多只能顯示13位小數。
最後,顯示的值可以放在滑槽附近的不同位置:
void gtk_scale_set_value_pos( GtkScale *scale, GtkPositionType pos ); |
參數pos是GtkPositionType類型,可以取以下值之一:
GTK_POS_LEFT GTK_POS_RIGHT GTK_POS_TOP GTK_POS_BOTTOM |
如果將值顯示在滑槽的「側面」(例如,在水平比例元件的滑槽的頂部和底部),顯示的值將跟隨滾軸上下移動。
所有前面講的函式都在<gtk/gtkscale.h>裡定義。當你包含了<gtk/gtk.h>文件時,所有 GTK 元件的標頭檔都自動包含了。但你應該去察看一下所有你感興趣的元件的標頭檔,這樣才能學到它們的更多的功能和特性。
1 則留言