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

📄 x1030.html

📁 GTK编程
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><HTML><HEAD><TITLE>微调按钮 Spin 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="c816.html"><LINKREL="PREVIOUS"TITLE="文本输入构件 Text Entries"HREF="x1002.html"><LINKREL="NEXT"TITLE="组合框 Combo Box"HREF="x1126.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="x1002.html"ACCESSKEY="P">&#60;&#60;&#60; Previous</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">杂项构件</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="x1126.html"ACCESSKEY="N">Next &#62;&#62;&#62;</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="SEC-SPINBUTTONS">微调按钮 Spin Buttons</H1><P>微调按钮(Spin Button)构件通常用于让用户从一个取值范围你选择一个值。它由一个文本输入框和旁边的向上和向下两个按钮组成。点击某一个按钮会让文本输入框你的数值大小在一定范围你改变。文本输入框里也可以直接输入一个特定值。</P><P>微调按钮构件允许其中的数值没有小数位或具有指定的小数位,并且数值可以按一种可配置的方式增加或减小。在按钮较长时间呈按下状态时,构件的数值会根据工具按下时间的长短加速变化。</P><P>微调按钮用一个<AHREF="c628.html">调整对象</A>来维护该按钮能够取值的范围。微调按钮构件因此而具有了很强大的功能。</P><P>下面是创建调整对象的函数。这里的用意是展示其中所包含的数值的意义:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">GtkObject *gtk_adjustment_new( gdouble value,                               gdouble lower,                               gdouble upper,                               gdouble step_increment,                               gdouble page_increment,                               gdouble page_size );</PRE></TD></TR></TABLE><P>调整对象的这些属性在微调按钮构件中有如下用处:</P><P></P><UL><LI><P> <TTCLASS="LITERAL">value</TT>:微调按钮构件的初始值</P></LI><LI><P> <TTCLASS="LITERAL">lower</TT>:构件允许的最小值</P></LI><LI><P> <TTCLASS="LITERAL">upper</TT>:构件允许的最大值</P></LI><LI><P> <TTCLASS="LITERAL">step_increment</TT>:当鼠标左键按下时构件一次增加/减小的值</P></LI><LI><P> <TTCLASS="LITERAL">page_increment</TT>:当鼠标右键按下时构件一次增加/减小的值</P></LI><LI><P> <TTCLASS="LITERAL">page_size</TT>:没有用到</P></LI></UL><P>另外,当用鼠标中间键点击按钮时,可以直接跳到构件的<TTCLASS="LITERAL">upper</TT>或<TTCLASS="LITERAL">lower</TT>值。下面看看怎样创建一个微调按钮构件:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">GtkWidget *gtk_spin_button_new( GtkAdjustment *adjustment,                                gdouble         climb_rate,                                guint          digits );</PRE></TD></TR></TABLE><P>其中的<TTCLASS="LITERAL">climb_rate</TT>参数是介于0.0和1.0间的值,指明构件数值变化的加速度(长时间按住按钮,数值会加速变化)。<TTCLASS="LITERAL">digits</TT>参数指定要显示的值的小数位数。</P><P>创建微调按钮构件之后,还可以用下面的函数对其重新配置:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_spin_button_configure( GtkSpinButton *spin_button,                                GtkAdjustment *adjustment,                                gdouble        climb_rate,                                guint          digits );</PRE></TD></TR></TABLE><P>其中<TTCLASS="LITERAL">spin_button</TT>参数就是要重新配置的构件。其它的参数与创建时的意思相同。</P><P>使用下面的两个函数可以设置或获取构件内部使用的调整对象:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_spin_button_set_adjustment( GtkSpinButton  *spin_button,                                     GtkAdjustment  *adjustment );GtkAdjustment *gtk_spin_button_get_adjustment( GtkSpinButton *spin_button );</PRE></TD></TR></TABLE><P>显示数值的小数位数可以用下面的函数改变:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_spin_button_set_digits( GtkSpinButton *spin_button,                                 guint          digits) ;</PRE></TD></TR></TABLE><P>微调按钮上当前显示的数值可以用下面的函数改变:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_spin_button_set_value( GtkSpinButton *spin_button,                                gdouble        value );</PRE></TD></TR></TABLE><P>微调按钮构件的当前值可以以浮点数或整数的形式获得。使用下面的函数:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">gdouble gtk_spin_button_get_value ( GtkSpinButton *spin_button );gint gtk_spin_button_get_value_as_int( GtkSpinButton *spin_button );</PRE></TD></TR></TABLE><P>如果想以当前值为基数改变微调按钮的值,可以使用下面的函数:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_spin_button_spin( GtkSpinButton *spin_button,                           GtkSpinType    direction,                           gdouble        increment );</PRE></TD></TR></TABLE><P>其中,<TTCLASS="LITERAL">direction</TT>参数可以取下面的值:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">  GTK_SPIN_STEP_FORWARD  GTK_SPIN_STEP_BACKWARD  GTK_SPIN_PAGE_FORWARD  GTK_SPIN_PAGE_BACKWARD  GTK_SPIN_HOME  GTK_SPIN_END  GTK_SPIN_USER_DEFINED</PRE></TD></TR></TABLE><P>这个函数中包含的一些功能将在下面详细介绍。其中的许多设置都使用了与微调按钮构件相关联的调整对象的值。</P><P><TTCLASS="LITERAL">GTK_SPIN_STEP_FORWARD</TT>和<TTCLASS="LITERAL">GTK_SPIN_STEP_BACKWARD</TT>将构件的值按<TTCLASS="LITERAL">increment</TT>参数指定的数值增大或减小,除非<TTCLASS="LITERAL">increment</TT>参数是0。这种情况下,构件的值将按与其相关联的调整对象的<TTCLASS="LITERAL">step_increment</TT>值改变。</P><P><TTCLASS="LITERAL">GTK_SPIN_PAGE_FORWARD</TT>和<TTCLASS="LITERAL">GTK_SPIN_PAGE_BACKWARD</TT>只是简单地按<TTCLASS="LITERAL">increment</TT>参数改变微调按钮构件的值。</P><P><TTCLASS="LITERAL">GTK_SPIN_HOME</TT>将构件的值设置为相关联调整对象的范围的最小值。</P><P><TTCLASS="LITERAL">GTK_SPIN_END</TT>将构件的值设置为相关联调整对象的范围的最大值。</P><P><TTCLASS="LITERAL">GTK_SPIN_USER_DEFINED</TT>简单地按指定的数值改变构件的数值。</P><P>介绍了设置和获取微调按钮的范围属性的函数,下面再介绍影响微调按钮构件的外观和行为的函数。</P><P>要介绍的第一个函数就是限制微调按钮构件的文本框只能输入数值。这样就阻止了用户输入任何非法的字符:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_spin_button_set_numeric( GtkSpinButton *spin_button,                                  gboolean       numeric );</PRE></TD></TR></TABLE><P>可以设置让微调按钮构件在upper和lower之间循环。也就是当达到最大值后再向上调整回到最小值,当达到最小值后再向下调整变为最大值。可以用下面的函数实现:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -