?? x583.html
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><HTML><HEAD><TITLE>開關(guān)按鈕 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="按鈕構(gòu)件"HREF="c554.html"><LINKREL="PREVIOUS"TITLE="按鈕構(gòu)件"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">按鈕構(gòu)件</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">開關(guān)按鈕 Toggle Buttons</H1><P>開關(guān)按鈕由一般按鈕派生而來,并且非常相似,只是開關(guān)按鈕有兩個狀態(tài),通過點擊可以切換。它們可以是被按下的(depressed),當你再點擊一下,他們會彈起來。再點擊一下,它們又會再彈下去。</P><P>開關(guān)按鈕是復選按鈕和單選按鈕的基礎(chǔ),所以單選按鈕和復選按鈕繼承了許多開關(guān)按鈕的函數(shù)調(diào)用。我會在講到它們時指出這些來。</P><P>創(chuàng)建一個新的開關(guān)按鈕:</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>你可以猜到,創(chuàng)建開關(guān)按鈕應該和一般按鈕構(gòu)件相同。第一個函數(shù)是創(chuàng)建一個空白的開關(guān)按鈕,后面兩個函數(shù)創(chuàng)建帶標簽的開關(guān)按鈕。其中 _mnemonic() 函數(shù)處理標簽中的以 '_' 為前綴的助記語法符。</P><P>我們是通過讀取開關(guān)構(gòu)件 (包括單選和復選按鈕) 結(jié)構(gòu)的 <TTCLASS="LITERAL">active</TT> 域,來檢測開關(guān)按鈕的狀態(tài)。之前要用 <TTCLASS="LITERAL">GTK_TOGGLE_BUTTON</TT> 宏把構(gòu)件指針轉(zhuǎn)換為開關(guān)構(gòu)件指針。我們關(guān)心的各種開關(guān)按鈕 (開關(guān)按鈕,復選按鈕,和單選按鈕構(gòu)件) 的信號是 "toggled" 信號。為了檢測這些按鈕的狀態(tài),設(shè)置一個處理函數(shù)以捕獲 "toggled" 信號,并且通過讀取結(jié)構(gòu)測定它的狀態(tài)。該回調(diào)函數(shù)如下:</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))) { /* 如果運行到這里,開關(guān)按鈕是按下的 */ } else { /* 如果運行到這里,開關(guān)按鈕是彈起的 */ }}</PRE></TD></TR></TABLE><P>設(shè)置開關(guān)按鈕和它的孩子 (即單選和復選按鈕) 的狀態(tài),用如下函數(shù):</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>上面的調(diào)用可以用來設(shè)置開關(guān)按鈕,以及它的孩子單選和復選按鈕的狀態(tài)。將你所創(chuàng)建的按鈕作為第一個參數(shù)傳入,以及一個 TRUE 或 FALSE 值作為第二個狀態(tài)參數(shù)來指定它應該是下 (按下) 還是上 (彈起)。默認是上,即 FALSE。</P><P>注意,當你使用 gtk_toggle_button_set_active() 函數(shù),并且狀態(tài)也實際改變了時,它會導致按鈕發(fā)出 "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>返回值是開關(guān)按鈕的當前狀態(tài)。</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">按鈕構(gòu)件</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 + -