主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 |
QRangeControl类提供了一个范围内的一个整数值。 详情请见……
#include <qrangecontrol.h>
由QDial、QScrollBar、QSlider和QSpinBox继承。
尽管QRangeControl最初始是为了QScrollBar窗口部件而设计的,但它也可以和像QSlider和QSpinBox这样的其它窗口部件关联使用。这里是这个类中五个主要概念:
单位(1)可以被看做事第三种步长。setValue()可以让你设置当前值为允许范围内的任何一个整数,对于n这一整数值,而不仅仅是minValue() + n * lineStep()。一些窗口部件也允许用户设置为任意值,而其它的也许只提供了lineStep()或pageStep()的倍数。
QRangeControl提供了适用于在屏幕上表示范围控制的更新和信号的发射的三个虚函数,叫做valueChange()、rangeChange()和stepChange()。
QRangeControl也提供了一个叫做bound()的函数,它可以强制任意整数变为这个范围控制所允许的范围中。
我们建议所有继承QRangeControl的窗口部件都至少提供一个叫做valueChanged()的信号,一些窗口部件也许需要提供addStep()、addPage()、substractStep()和substractPage()做为槽。
注意如果你计划实现一个使用QRangeControl的窗口部件,你不得不使用多重继承,因为QRangeControl并不是继承于QWidget的。
也可以参考杂项类。
如果值发生改变,那么valueChange()被调用。
也可以参考subtractLine()、addPage()和setValue()。
如果值发生改变,那么valueChange()被调用。
也可以参考subtractPage()、addLine()和setValue()。
这个函数的提供可以让你很容易地强制转换其它数值而不是value()进入允许范围。你不需要为了QRangeControl本身而调用它。
也可以参考setValue()、value()、minValue()和maxValue()。
强制新value进入合法范围。
你将很少用到这个函数。可是,如果你想在valueChange()的重载函数中改变范围控制的值,而setValue()将会再次调用valueChange(),这时你就必须使用directSetValue()来替代它。
也可以参考setValue()。
返回当前线步。
返回当前范围的最大值。
也可以参考setMaxValue()、setRange()和minValue()。
返回当前范围的最小值。
也可以参考setMinValue()、setRange()和maxValue()。
返回当前页步。
这个函数可以处理整个整数范围而不会溢出。
当绘制一个范围控制时,比如在屏幕上的QScrollBar,调用这个函数是很有用的。
也可以参考valueFromPosition()。
返回范围控制的上一个值。“上一个值”指的是在最后一次值的变化之前出现的值。设置一个新的范围也许会影响到值,因为这个值被强制在特定的范围之内。当范围控制被初始创建时,这个值和value()一样。
如果你调用setRange()导致当前值发生改变得话,prevValue()可能在当前合法范围之外。例如,如果一个范围是[0, 1000]并且当前值为500,setRange(0, 400)将会使value()返回400并且prevValue()返回500。
注意在范围发生改变之后,这个方法才被调用。
也可以参考setRange()、valueChange()和stepChange()。
在QDial、QSlider和QSpinBox中被重新实现。
如果需要,需要minValue()将会被调整来确保范围仍然有效。
也可以参考maxValue()和setMinValue()。
如果需要,需要maxValue()将会被调整来确保范围仍然有效。
也可以参考minValue()和setMaxValue()。
如果新的最小值和最大值中的一个或两个与原先设定的不同,调用虚函数rangeChange()。如果因为当前值在新的范围之外,它需要被调整,那么调用虚函数valueChange()。
如果maxValue小于minValue,minValue变为合法的。
实例:listbox/listbox.cpp、t12/lcdrange.cpp、t5/main.cpp、t6/main.cpp、 t8/lcdrange.cpp和xform/xform.cpp。
如果新的线步和/或页步与以前的设定不同,调用虚函数stepChange()。
也可以参考lineStep()、pageStep()和setRange()。
如果新的值和以前的值不同,调用虚函数valueChange()。旧的值也可以通过prevValue()得到。
也可以参考value().
注意在步长设置被改变之后,这个方法才被调用。
也可以参考setSteps()、rangeChange()和valueChange()。
如果值发生改变,那么valueChange()被调用。
也可以参考addLine()、subtractPage()和setValue()。
如果值发生改变,那么valueChange()被调用。
也可以参考addPage()、subtractLine()和setValue()。
返回当前范围控制的值。这个值已经被保证在[minValue(), maxValue()]范围内。
注意在值发生变化之后,这个方法才被调用。以前的值可以通过prevValue()来得到。
也可以参考setValue()、addPage()、subtractPage()、addLine()、subtractLine()、rangeChange()和stepChange()。
在QDial、QSlider和QSpinBox中被重新实现。
这个函数可以用来操作整个整数范围而不会溢出。
当你真正实现一个范围控制窗口部件时,比如QScrollBar和想处理鼠标按下事件时,调用这个函数是很有用的。这个函数会映射屏幕坐标为合法值。
也可以参考positionFromValue()。
这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。
Copyright © 2002 Trolltech | Trademarks | 译者:Cavendish | Qt 3.0.5版
|