简述
QSlider继承自QAbstractSlider
QSlider提供水平或垂直的滑块。
滑块是用于控制有界值的经典小部件。它使用户可以沿水平或垂直凹槽移动滑动手柄,并将手柄的位置转换为合法范围内的整数值。
功能详述
QSlider仅有很少的专属功能。大多数功能都是继承自QAbstractSlider。最有用的函数是setValue(),可将滑块直接设置为某个值。 triggerAction()模拟点击的效果(对于快捷键很有用); setSingleStep(),setPageStep()设置步长;setMinimum()和setMaximum()来定义滚动条的范围。
QSlider提供了控制刻度线的方法。可以使用setTickPosition()来指示刻度线的位置,setTickInterval()可以指示想要的刻度线数。当前设置的刻度位置和间隔可以分别使用tickPosition()和tickInterval()函数查询。
使用
效果
源码
QSlider *slider = new QSlider;
QSpinBox *spinBox = new QSpinBox(Qt::Horizontal);
QGridLayout *gridLayout = new QGridLayout;
gridLayout->addWidget(slider, 0, 0, 1, 1);
gridLayout->addWidget(spinBox, 0, 1, 1, 1);
this->setLayout(gridLayout);
connect(slider, &QSlider::valueChanged, spinBox, &QSpinBox::setValue);
connect(spinBox, QOverload<int>::of(&QSpinBox::valueChanged),slider, &QSlider::setValue);
注意到这里第二个信号槽的绑定方法有点特殊,这是因为QSpin的valueChanged是一个重载函数,它有两个版本,所以我们需要指定具体是哪一个函数。
常用接口
QSlider大多数属性与方法都是继承自QAbstractSlider,下面是QSlider独有的属性
属性
- 刻度数量
- tickInterval
- 刻度位置
- tickPosition
枚举类型QSlider::TickPosition
常量 | 值 | 描述 |
---|---|---|
QSlider::NoTicks | 0 | 不绘制任何刻度 |
QSlider::TicksBothSides | 3 | 沟槽的两边都绘制刻度 |
QSlider::TicksAbove | 1 | 沟槽(水平)的上部绘制刻度 |
QSlider::TicksBelow | 2 | 沟槽(水平)的下部绘制刻度 |
QSlider::TicksLeft | TicksAbove | 沟槽(垂直)的左边绘制刻度 |
QSlider::TicksRight | TicksBelow | 沟槽(垂直)的右边绘制刻度 |
公共函数
- 设置刻度数量
- setTickInterval(int)
- 设置刻度位置
- setTickPosition(QSlider::TickPosition)
效果
源码
slider->setTickInterval(10);
slider->setTickPosition(QSlider::TicksBothSides);
- 返回刻度数量
- int tickInterval()
- 返回刻度位置
- QSlider::TickPosition tickPosition()
引用
[1] Qt助手
[2] QAbstractSlider