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

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

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

創建一個新的雙態按鈕:

GtkWidget *gtk_toggle_button_new( void );

GtkWidget *gtk_toggle_button_new_with_label( const gchar *label );

GtkWidget *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);

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

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

1 則留言


發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *