信号说明
QSlider很少有自己的函数,大部分功能在QAbstractSlider中。
最有用的函数是setValue(),用来设置滑块的当前值;
triggerAction()来模拟点击的效果(对快捷键有用);
setSingleStep()、setPageStep()用来设置步长;
setMinimum()和setMaximum()用于定义滚动条的范围。
QSlider提供了一些方法来控制刻度标记:
可以使用setTickPosition()来表示刻度标记的位置,
使用setTickInterval()来指定刻度的间隔;
当前设置的刻度位置和间隔可以分别使用tickPosition()和tickInterval()函数来查询。
QSlider继承了一组全面的信号:
信号 | 描述 |
---|---|
valueChanged() | 当滑块的值发生了改变,发射此信号。tracking()确定在用户交互时,是否发出此信号。 |
sliderPressed() | 当用户按下滑块,发射此信号。 |
sliderMoved() | 当用户拖动滑块,发射此信号。 |
sliderReleased() | 当用户释放滑块,发射此信号。 |
QSlider只提供整数范围。
注意:尽管QSlider可以处理非常大的数字,但是对于用户来说,难以准确使用很大范围的滑块。
滑块接受Tab键的焦点,并同时提供了一个鼠标滚轮和键盘接口。键盘接口如下:
-
Left/Right 移动水平滑块一个步长。
-
Up/Down 移动垂直滑块一个步长。
-
PageUp 上移一页。
-
PageDown 下移一页。
-
Home 移动至起始位置(最小值)。
-
End 移动至结束位置(最大值)
刻度位置
枚举 QSlider::TickPosition
这个枚举指定刻度线相对于滑块和用户操作的位置。
常量 | 值 | 描述 |
---|---|---|
QSlider::NoTicks | 0 | 不绘制任何刻度线 |
QSlider::TicksBothSides | 3 | 在滑块的两侧绘制刻度线 |
QSlider::TicksAbove | 1 | 在(水平)滑块上方绘制刻度线 |
QSlider::TicksBelow | 2 | 在(水平)滑块下方绘制刻度线 |
QSlider::TicksLeft | TicksAbove | 在(垂直)滑块左侧绘制刻度线 |
QSlider::TicksRight | TicksBelow | 在(垂直)滑块右侧绘制刻度线 |
基本使用
ui->horizontalSlider->setRange(0, 255);//设置范围 ui->horizontalSlider->setValue(37); //设置当前值 int val = ui->horizontalSlider->value(); //获取值 ui->OUT1->setText(QString::number(val));//把获取到的值显示在文本框
结合上面的代码,在用上面代码初始化后,可以把使用信号槽 valueChanged(int value) 实现简单的拖动滑块显示拖动的值
void MainWindow::on_horizontalSlider_valueChanged(int value) { ui->OUT1->setText(QString::number(value)); }
实现的结果如下,注意:下图的ON/OFF按钮跟左上角的PNP是其他的测试使用的,跟本次说的功能实现没有关联影响就不放出来了。