?? x747.html
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><HTML><HEAD><TITLE>常用的范圍函數</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="GTK+ 2.0 教程"HREF="book1.html"><LINKREL="UP"TITLE="范圍構件 Range Widgets"HREF="c696.html"><LINKREL="PREVIOUS"TITLE="比例構件 Scale Widgets"HREF="x708.html"><LINKREL="NEXT"TITLE="鍵盤和鼠標綁定"HREF="x788.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="x708.html"ACCESSKEY="P"><<< Previous</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">范圍構件 Range Widgets</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="x788.html"ACCESSKEY="N">Next >>></A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="SEC-COMMONRANGEFUNCTIONS">常用的范圍函數</H1><P>范圍構件本質上來說都是相當復雜的,不過,像所有“基本類”構件一樣,絕大部分復雜性只有當你想徹底了解它時才吸引人。同樣,幾乎所有它定義的函數和信號都只在用它們寫派生構件時才真正用到。然而,在<TTCLASS="LITERAL"><gtk/gtkrange.h></TT>中還是有一些很有用的函數,它們對所有范圍構件都起作用。</P><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="AEN751">設置更新方式</H2><P>范圍構件的“更新方式”定義了用戶與構件交互時的它的調整對象的<TTCLASS="LITERAL">value</TT>值如何變化,以及如何引發 "value_changed" 信號給調整對象。更新方式在<TTCLASS="LITERAL"><gtk/gtkenums.h></TT>中定義為<TTCLASS="LITERAL">enum GtkUpdateType</TT>類型,有以下取值:</P><P></P><DIVCLASS="VARIABLELIST"><DL><DT><TTCLASS="LITERAL">GTK_UPDATE_CONTINUOUS</TT></DT><DD><P>這是默認值。"value_changed" 信號是連續引發,例如,每當滑塊移動,甚至移動最小數量時都會引發。</P></DD><DT><TTCLASS="LITERAL">GTK_UPDATE_DISCONTINUOUS</TT></DT><DD><P>只有滑塊停止移動,用戶釋放鼠標鍵時才引發 "value_changed" 信號。</P></DD><DT><TTCLASS="LITERAL">GTK_UPDATE_DELAYED</TT></DT><DD><P>當用戶釋放鼠標鍵,或者滑塊短期停止移動時才引發 "value_changed" 信號。</P></DD></DL></DIV><P>范圍構件的更新方式可以用以下方法設置:用<TTCLASS="LITERAL">GTK_RANGE(widget)</TT>宏將構件轉換,并將它傳遞給這個函數:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_range_set_update_policy( GtkRange *range, GtkUpdateType policy);</PRE></TD></TR></TABLE></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="AEN776">獲得和設置調整對象</H2><P>猜得出,用以下函數"快速"取得和設置調整對象:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">GtkAdjustment* gtk_range_get_adjustment( GtkRange *range );void gtk_range_set_adjustment( GtkRange *range, GtkAdjustment *adjustment );</PRE></TD></TR></TABLE><P><TTCLASS="LITERAL">gtk_range_get_adjustment()</TT>返回一個指向<TTCLASS="LITERAL">range</TT>所連接的調整對象的指針。</P><P>如果將<TTCLASS="LITERAL">range</TT>正在使用的調整對象傳遞給<TTCLASS="LITERAL">gtk_range_set_adjustment()</TT>函數,什么也不會發生,不管是否改變了其內部的值。如果是將一個新的調整對象傳遞給它,它會將舊的調整對象(如果存在)解除引用(unreference)(可能會銷毀它),將適當的信號連接到新的調整對象,并且調用私有函數<TTCLASS="LITERAL">gtk_range_adjustment_changed()</TT>,該函數將(或至少假裝會...)重新計算滑塊的尺寸和/或位置,并在需要時重新繪出該構件。正如在調整對象部分所提到的,如果想重新使用同一個調整對象,當直接修改它的值時,應該引發一個 "changed" 信號給它,像這樣:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">g_signal_emit_by_name (G_OBJECT (adjustment), "changed");</PRE></TD></TR></TABLE></DIV></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="x708.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="x788.html"ACCESSKEY="N">Next >>></A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">比例構件 Scale Widgets</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="c696.html"ACCESSKEY="U">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">鍵盤和鼠標綁定</TD></TR></TABLE></DIV></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -