Qt之输入控件(QSlider)

简述

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章