首頁 / LinuxDev / GTK+ 2.0 教學-調整物件 Adjustments

GTK+ 2.0 教學-調整物件 Adjustments

有多種元件能夠由用戶通過滑鼠或鍵盤進行調整,比如範圍元件。還有一些元件,比如說 GtkText 和 GtkViewport,內部都有一些可調整的屬性。

很明顯,當用戶調整範圍元件的值時,應用程式需要對值的變化進行響應。一種辦法就是當元件的調整值發生變化時,讓每個元件引發自己的信號,將新值傳遞到信號處理函式中,或者讓它在元件的內部資料結構中查找元件的值。但是,也許需要將這個調整值同時連接到幾個元件上,使得調整一個值時,其它的元件都隨之響應。 最明顯的範例就是將一個捲軸連接到一個畫面平移視埠(panning viewport)或者文字區域(scrolling text area)上。如果每個元件都要有自己的設置或獲取調整值的方法,那麼程式員就可以編寫自己的的信號處理函式來翻譯
元件訊號的輸出及另一個調整設定函式的輸入。

GTK 用一個調整物件(Adjustment object)解決了這個問題。調整物件不是元件,但是為元件提供了一種以抽象、靈活的方法來儲存及傳遞調整值的資訊。調整物件最明顯的用處就是為範圍元件(比如 捲軸和比例元件)儲存組態參數和值。然而,因為調整物件是從Object衍生出來的,除了其正常的資料結構之外,它還具有一些特殊的功能。最重要的是,它們能夠引發信號,就像元件一樣,這些信號不僅能夠讓程式對用戶在可調整元件上的輸入進行響應,還能在可調整元件之間透明地傳播調整值。

在許多其它的元件中都能夠看到調整物件的用處。比如進度顯示器視埠捲動視窗等。

創建一個調整物件

許多使用調整物件的元件都能夠自動創建它,但是有些情況下,必須自己手工創建。用下面的函式創建調整物件:

GtkObject *gtk_adjustment_new( gdouble value,

                               gdouble lower,

                               gdouble upper,

                               gdouble step_increment,

                               gdouble page_increment,

                               gdouble page_size );

其中的value參數是要賦給調整物件的初始值,通常對應於一個可調整元件的最高或最低位置。lower參數指定調整物件能取的最低值,step_increment參數指定用戶能小步增加的值,page_increment是用戶能大步調整的值。page_size參數通常用於設置分欄元件(panning widget)的可視區域。upper參數用於表示分欄元件的子元件的最底部或最右邊的坐標。因而,它一定總是value能取的最大值,因為這些元件的page_size通常是非零值(value能取的最大值一般是upper-page_size)。

馬上成為工作達人的Fans

About ㄚ琪

工作達人Fun Taiwan的創辦者及總編,可以在這裡更認識他。

One comment

發表迴響

你的電子郵件位址並不會被公開。 Required fields are marked *

*

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

Scroll To Top