QT的horizontalSlider 控件使用说明

时间:2024-04-15 13:03:55

信号说明

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是其他的测试使用的,跟本次说的功能实现没有关联影响就不放出来了。