⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x747.html

📁 GTK编程
💻 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">&#60;&#60;&#60; Previous</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">范围构件 Range Widgets</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="x788.html"ACCESSKEY="N">Next &#62;&#62;&#62;</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="SEC-COMMONRANGEFUNCTIONS">常用的范围函数</H1><P>范围构件本质上来说都是相当复杂的,不过,像所有“基本类”构件一样,绝大部分复杂性只有当你想彻底了解它时才吸引人。同样,几乎所有它定义的函数和信号都只在用它们写派生构件时才真正用到。然而,在<TTCLASS="LITERAL">&#60;gtk/gtkrange.h&#62;</TT>中还是有一些很有用的函数,它们对所有范围构件都起作用。</P><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="AEN751">设置更新方式</H2><P>范围构件的“更新方式”定义了用户与构件交互时的它的调整对象的<TTCLASS="LITERAL">value</TT>值如何变化,以及如何引发 "value_changed" 信号给调整对象。更新方式在<TTCLASS="LITERAL">&#60;gtk/gtkenums.h&#62;</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">&#60;&#60;&#60; 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 &#62;&#62;&#62;</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 + -