QSlider 类

QSlider 小部件提供了垂直或水平的滑块。 更多...

头文件 #include <QSlider>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承自 QAbstractSlider

公共类型

枚举TickPosition { NoTicks, TicksBothSides, TicksAbove, TicksBelow, TicksLeft, TicksRight }

属性

公共函数

QSlider(QWidget *parent = nullptr)
QSlider(Qt::Orientation orientation, QWidget *parent = nullptr)
virtual~QSlider()
voidsetTickInterval(int ti)
voidsetTickPosition(QSlider::TickPosition position)
inttickInterval() const
QSlider::TickPositiontickPosition() const

重写公共函数

virtual boolevent(QEvent *event) override
virtual QSizeminimumSizeHint() const override
virtual QSizesizeHint() const override

受保护的函数

virtual voidinitStyleOption(QStyleOptionSlider *option) const

重写受保护函数

virtual voidmouseMoveEvent(QMouseEvent *ev) override
virtual voidmousePressEvent(QMouseEvent *ev) override
virtual voidmouseReleaseEvent(QMouseEvent *ev) override
virtual voidpaintEvent(QPaintEvent *ev) override

详细说明

滑块是控制有界值的经典小部件。它允许用户将滑块把手沿水平或垂直槽移动,并将把手的位置转换为目标范围内整数值。

QSlider 函数非常少,大部分功能在 QAbstractSlider 中实现。其中最有用的函数是 setValue(),可设置滑动条的值;triggerAction() 模拟点击效果(用于快捷键);setSingleStep()、setPageStep() 设置步长;以及 setMinimum() 和 setMaximum() 定义滚动条的取值范围。

QSlider 提供了控制刻度的方法。可以使用 setTickPosition() 标明刻度线位置,使用 setTickInterval() 标明刻度数量。当前设置的刻度位置和间隔可以使用 tickPosition() 和 tickInterval() 函数分别查询。

QSlider 继承了一套全面的信号。

信号描述
valueChanged()滑动条值改变时发出。tracking() 确定此信号是否在用户交互时发出。
sliderPressed()当用户开始拖动滑动条时发出。
sliderMoved()当用户拖动滑动条时发出。
sliderReleased()当用户释放滑动条时发出。

QSlider 只提供整数范围。请注意,虽然 QSlider 处理非常大的数字,但对于非常大的范围,用户很难使用滑动条进行精确操作。

滑动条在接受 Tab 键焦点的同时提供鼠标滚轮和键盘接口。键盘接口如下:

  • 左/右键移动水平滑动条一个步长。
  • 上/下键移动垂直滑动条一个步长。
  • PageUp 向上移动一页。
  • PageDown 向下移动一页。
  • Home 移动到起始位置(最小值)。
  • End 移动到结束位置(最大值)。

参见QScrollBarQSpinBoxQDial滑动条示例

成员类型文档

enum QSlider::TickPosition

此枚举指定刻度线相对于滑动条凹槽和用户移动的手柄的位置。

常量描述
QSlider::NoTicks0不绘制任何刻度线。
QSlider::TicksBothSides3在凹槽两侧绘制刻度线。
QSlider::TicksAbove1在(水平)滑动条上方绘制刻度线。
QSlider::TicksBelow2在(水平)滑动条下方绘制刻度线。
QSlider::TicksLeftTicksAbove在(垂直)滑动条左侧绘制刻度线。
QSlider::TicksRightTicksBelow在(垂直)滑动条右侧绘制刻度线。

属性文档

tickInterval : int

此属性保存刻度线之间的间隔。

这是一个值间隔,而不是像素间隔。如果为 0,滑动条将选择 singleStep 和 pageStep 之间的值。

默认值为 0。

访问函数

inttickInterval() const
voidsetTickInterval(int ti)

参见tickPositionsingleStep、和 pageStep

tickPosition : TickPosition

此属性存储该滑块的刻度标记位置

有效的值由QSlider::TickPosition枚举描述。

默认值是QSlider::NoTicks

访问函数

QSlider::TickPositiontickPosition() const
voidsetTickPosition(QSlider::TickPosition position)

另请参阅tickInterval

成员函数文档

[显式] QSlider::QSlider(QWidget *parent = nullptr)

使用指定的parent构造一个垂直滑块。

[显式] QSlider::QSlider(Qt::Orientation orientation, QWidget *parent = nullptr)

使用指定的parent构造一个滑块。参数orientation确定滑块是水平的还是垂直的;有效的值是Qt::VerticalQt::Horizontal

[虚函数] QSlider::~QSlider()

销毁此滑块。

[重写虚函数] bool QSlider::event(QEvent *event)

重写了 QAbstractSlider::event(QEvent *e)。

[虚保护] void QSlider::initStyleOption(QStyleOptionSlider *option) const

使用此QSlider的值初始化option。此方法对于需要QStyleOptionSlider但不想自行填写所有信息的子类很有用。

另请参阅QStyleOption::initFrom

[重写虚函数] QSize QSlider::minimumSizeHint() const

重写了QWidget::minimumSizeHint属性的访问函数。

[重写虚保护] void QSlider::mouseMoveEvent(QMouseEvent *ev)

重写了 QWidget::mouseMoveEvent(QMouseEvent *event)。

[重写虚保护] void QSlider::mousePressEvent(QMouseEvent *ev)

重写了 QWidget::mousePressEvent(QMouseEvent *event)。

[重写虚保护] void QSlider::mouseReleaseEvent(QMouseEvent *ev)

重写了 QWidget::mouseReleaseEvent(QMouseEvent *event)。

[覆盖虚受保护] void QSlider::paintEvent(QPaintEvent *ev)

重新实现:QWidget::paintEvent(QPaintEvent *event).

[覆盖虚保护] QSize QSlider::sizeHint() const

重新实现访问属性的方法:QWidget::sizeHint.

© 2024 The Qt Company Ltd. 本文档中的贡献版权归其各自的所有者。本提供的文档是在自由软件基金会发布、根据GNU自由文档许可证(版本1.3)许可下提供的。Qt及其相关标志是The Qt Company Ltd.在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。