首頁 / LinuxDev / GTK+ 2.0 教學-雙態按鈕 Toggle Buttons

GTK+ 2.0 教學-雙態按鈕 Toggle Buttons

雙態按鈕由一般按鈕衍生而來,並且非常相似,只是雙態按鈕有兩個狀態,通過點擊可以切換。它們可以是被按下的(depressed),當你再點擊一下,他們會彈起來。再點擊一下,它們又會再彈下去。

雙態按鈕是複選按鈕和單選按鈕的基礎,所以單選按鈕和複選按鈕繼承了許多雙態按鈕的函式呼叫。我會在講到它們時指出這些來。

創建一個新的雙態按鈕:

 *_toggle_button_new( void );

 *gtk_toggle_button_new_with_label( const gchar *label );

 *gtk_toggle_button_new_with_mnemonic( const gchar *label );

你可以猜到,創建雙態按鈕應該和一般按鈕元件相同。第一個函式是創建一個空白的雙態按鈕,後面兩個函式創建帶標籤的雙態按鈕。其中 _mnemonic() 函式是跟其前面有_lable的函式的變形。

我們是通過讀取雙態元件 (包括單選和複選按鈕) 結構的 active 域,來檢測雙態按鈕的狀態。之前要用 GTK_TOGGLE_BUTTON 巨集把元件指標轉換為雙態元件指標。我們關心的各種雙態按鈕 (雙態按鈕,複選按鈕,和單選按鈕元件) 的信號是 “toggled” 信號。為了檢測這些按鈕的狀態,設置一個處理函式以捕獲 “toggled” 信號,並且通過讀取結構測定它的狀態。該回呼函式如下:

void toggle_button_callback (GtkWidget *widget, gpointer data)
{
    if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
    {
        /* 如果執行到這裡,雙態按鈕是按下的 */

    } else {

        /* 如果執行到這裡,雙態按鈕是彈起的 */
    }
}

設置雙態按鈕和它的子類別 (即單選和複選按鈕) 的狀態,用如下函式:

void gtk_toggle_button_set_active( GtkToggleButton *toggle_button,
                                   gboolean        is_active );

上面的呼叫可以用來設置開關按鈕,以及它的子類別單選和複選按鈕的狀態。將你所創建的按鈕作為第一個參數傳入,以及一個 TRUE 或 FALSE 值作為第二個狀態參數來指定它應該是下 (按下) 還是上 (彈起)。預設是上,即 FALSE。

注意,當你使用 gtk_toggle_button_set_active() 函式,並且狀態也實際改變了時,它會導致按鈕發出 “clicked” 和 “toggled” 信號。

gboolean gtk_toggle_button_get_active	(GtkToggleButton *toggle_button);

傳回值是雙態按鈕的當前狀態。

Print Friendly, PDF & Email
馬上成為工作達人的Fans

About ㄚ琪

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

One comment

發表迴響

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

*

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

Scroll To Top