Roson讲Qt #11 QSlider(滑块)
1.什么是QSlider
QSlider小部件提供一个垂直或水平滑块。
滑块是控制有界值的经典小部件。它允许用户沿着水平或垂直槽移动滑块手柄,并将手柄的位置转换为合法范围内的整数值。
QSlider有很少的自己的功能;大部分功能都在QAbstractSlider中。最有用的函数是setValue()直接将滑块设置为某个值;triggerAction()来模拟点击的效果(对于快捷键很有用);setSingleStep(), setPageStep()设置步骤;和setMinimum()和setMaximum()来定义滚动条的范围。
QSlider提供了控制标记的方法。您可以使用setTickPosition()来指示您想要标记的位置,setTickInterval()来指示您想要多少个标记。当前设置的tick位置和时间间隔可以分别使用tickPosition()和tickInterval()函数查询。
QSlider继承了一套全面的信号:
Signal | Description |
valueChanged() | 当滑块的值改变时触发。跟踪()确定是否在用户交互期间发出此信号。 |
sliderPressed() | 当用户开始拖动滑块时触发。 |
sliderMoved() | 当用户拖动滑块时触发。 |
sliderReleased() | 当用户释放滑块时触发。 |
QSlider只提供整数范围。注意,虽然QSlider处理非常大的数字,但用户很难准确地使用滑块用于非常大的范围。
Tab键可以切换焦点到此控件上,并且鼠标和键盘都能控制滑块移动:
- 向左/向右键——移动水平滑块一步。
- 向上/向下键——移动一个垂直滑块单步。
- PageUp键——向上移动一页。
- PageDown键——向下移动一页。
- Home键——移动到开始(最小)。
- End键——移动到末尾(最大值)。
2.QSlider使用
2.1 设置滑动条方向(水平或者垂直)
ui.horizontalSlider->setOrientation(Qt::Vertical);
ui.horizontalSlider->setFixedSize(20,200);
2.2 设置刻度线位置
Constant | Value | Description |
QSlider::NoTicks | 0 | 不要画任何刻度线。 |
QSlider::TicksBothSides | 3 | 在槽的两边画上刻度线 |
QSlider::TicksAbove | 1 | 在(水平)滑块上方画刻度线 |
QSlider::TicksBelow | 2 | 在(水平)滑块下面画刻度线 |
QSlider::TicksLeft | TicksAbove | 在(垂直的)滑块的左边画刻度线 |
QSlider::TicksRight | TicksBelow | 在(垂直的)滑块的右边画刻度线 |
在滑块下面画刻度线
ui.horizontalSlider->setTickPosition(QSlider::TicksBelow);
在滑块上面和下面同时画刻度线
ui.horizontalSlider->setTickPosition(QSlider::QSlider::TicksBothSides);
2.3 设置刻度线间隔
默认总长度为100,设置刻度间隔为20之后,会分成5个区间,每个区间占20.
ui.horizontalSlider->setTickPosition(QSlider::TicksBelow);
ui.horizontalSlider->setTickInterval(20);
2.4 设置滑块的位置
ui.horizontalSlider->setTickPosition(QSlider::TicksBelow);
ui.horizontalSlider->setTickInterval(20);
ui.horizontalSlider->setValue(50);
2.5 获取滑块的位置
ui.horizontalSlider->value();
还没有评论,来说两句吧...