?? x583.html
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><HTML><HEAD><TITLE>開關按鈕 Toggle Buttons</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="GTK+ 2.0 教程"HREF="book1.html"><LINKREL="UP"TITLE="按鈕構件"HREF="c554.html"><LINKREL="PREVIOUS"TITLE="按鈕構件"HREF="c554.html"><LINKREL="NEXT"TITLE="復選按鈕 Check Buttons"HREF="x600.html"></HEAD><BODYCLASS="SECT1"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">GTK+ 2.0 教程</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="c554.html"ACCESSKEY="P"><<< Previous</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">按鈕構件</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="x600.html"ACCESSKEY="N">Next >>></A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="SEC-TOGGLEBUTTONS">開關按鈕 Toggle Buttons</H1><P>開關按鈕由一般按鈕派生而來,并且非常相似,只是開關按鈕有兩個狀態,通過點擊可以切換。它們可以是被按下的(depressed),當你再點擊一下,他們會彈起來。再點擊一下,它們又會再彈下去。</P><P>開關按鈕是復選按鈕和單選按鈕的基礎,所以單選按鈕和復選按鈕繼承了許多開關按鈕的函數調用。我會在講到它們時指出這些來。</P><P>創建一個新的開關按鈕:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">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 );</PRE></TD></TR></TABLE><P>你可以猜到,創建開關按鈕應該和一般按鈕構件相同。第一個函數是創建一個空白的開關按鈕,后面兩個函數創建帶標簽的開關按鈕。其中 _mnemonic() 函數處理標簽中的以 '_' 為前綴的助記語法符。</P><P>我們是通過讀取開關構件 (包括單選和復選按鈕) 結構的 <TTCLASS="LITERAL">active</TT> 域,來檢測開關按鈕的狀態。之前要用 <TTCLASS="LITERAL">GTK_TOGGLE_BUTTON</TT> 宏把構件指針轉換為開關構件指針。我們關心的各種開關按鈕 (開關按鈕,復選按鈕,和單選按鈕構件) 的信號是 "toggled" 信號。為了檢測這些按鈕的狀態,設置一個處理函數以捕獲 "toggled" 信號,并且通過讀取結構測定它的狀態。該回調函數如下:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">void toggle_button_callback (GtkWidget *widget, gpointer data){ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { /* 如果運行到這里,開關按鈕是按下的 */ } else { /* 如果運行到這里,開關按鈕是彈起的 */ }}</PRE></TD></TR></TABLE><P>設置開關按鈕和它的孩子 (即單選和復選按鈕) 的狀態,用如下函數:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_toggle_button_set_active( GtkToggleButton *toggle_button, gboolean is_active );</PRE></TD></TR></TABLE><P>上面的調用可以用來設置開關按鈕,以及它的孩子單選和復選按鈕的狀態。將你所創建的按鈕作為第一個參數傳入,以及一個 TRUE 或 FALSE 值作為第二個狀態參數來指定它應該是下 (按下) 還是上 (彈起)。默認是上,即 FALSE。</P><P>注意,當你使用 gtk_toggle_button_set_active() 函數,并且狀態也實際改變了時,它會導致按鈕發出 "clicked" 和 "toggled" 信號。</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">gboolean gtk_toggle_button_get_active (GtkToggleButton *toggle_button);</PRE></TD></TR></TABLE><P>返回值是開關按鈕的當前狀態。</P></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="c554.html"ACCESSKEY="P"><<< Previous</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="book1.html"ACCESSKEY="H">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="x600.html"ACCESSKEY="N">Next >>></A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">按鈕構件</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="c554.html"ACCESSKEY="U">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">復選按鈕 Check Buttons</TD></TR></TABLE></DIV></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -