QSlider Class
QSlider 控件提供垂直或水平的滑块。更多内容...
| 标题: | #include <QSlider> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 继承自: | QAbstractSlider |
公共类型
| enum | TickPosition { NoTicks, TicksBothSides, TicksAbove, TicksBelow, TicksLeft, TicksRight } |
属性
- tickInterval : int
- tickPosition : TickPosition
公共函数
| QSlider(QWidget *parent = nullptr) | |
| QSlider(Qt::Orientation orientation, QWidget *parent = nullptr) | |
| virtual | ~QSlider() |
| void | setTickInterval(int ti) |
| void | setTickPosition(QSlider::TickPosition position) |
| int | tickInterval() const |
| QSlider::TickPosition | tickPosition() const |
重新实现的公共函数
| virtual bool | event(QEvent *event) override |
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
受保护函数
| virtual void | initStyleOption(QStyleOptionSlider *option) const |
重新实现的受保护函数
| virtual void | mouseMoveEvent(QMouseEvent *ev) override |
| virtual void | mousePressEvent(QMouseEvent *ev) override |
| virtual void | mouseReleaseEvent(QMouseEvent *ev) override |
| virtual void | paintEvent(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 移动到末尾(最大值)。
另请参阅 QScrollBar 、QSpinBox 、QDial 以及“滑块示例”。
成员类型文档
enum QSlider::TickPosition
此枚举指定了刻度线相对于滑块凹槽以及用户移动的控件手柄的位置。
| 常量 | 值 | 描述 |
|---|---|---|
QSlider::NoTicks | 0 | 不绘制任何刻度。 |
QSlider::TicksBothSides | 3 | 在凹槽的两侧绘制刻度线。 |
QSlider::TicksAbove | 1 | 在(水平)滑块上方绘制刻度 |
QSlider::TicksBelow | 2 | 在(水平)滑块下方绘制刻度 |
QSlider::TicksLeft | TicksAbove | 在(垂直)滑块左侧绘制刻度 |
QSlider::TicksRight | TicksBelow | 在(垂直)滑块右侧画上刻度 |
属性文档
tickInterval : int
该属性用于指定刻度标记之间的间隔
这是一个数值间隔,而非像素间隔。如果该值为0 ,则滑块将在singleStep和pageStep之间进行选择。
默认值为0 。负值无效,因此会被限制在0 之间。
访问函数:
| int | tickInterval() const |
| void | setTickInterval(int ti) |
另请参阅 tickPosition 、singleStep 和pageStep 。
tickPosition : TickPosition
该属性用于存储此滑块的刻度位置
有效值由QSlider::TickPosition 枚举定义。
默认值为QSlider::NoTicks 。
访问函数:
| QSlider::TickPosition | tickPosition() const |
| void | setTickPosition(QSlider::TickPosition position) |
另请参阅 tickInterval 。
成员函数文档
[explicit] QSlider::QSlider(QWidget *parent = nullptr)
根据给定的parent ,构建一个垂直滑块。
[explicit] QSlider::QSlider(Qt::Orientation orientation, QWidget *parent = nullptr)
根据给定的parent 创建一个滑块。orientation 参数用于确定滑块是水平还是垂直的;有效值为Qt::Vertical 和Qt::Horizontal 。
[virtual noexcept] QSlider::~QSlider()
删除此滑块。
[override virtual] bool QSlider::event(QEvent *event)
重写了:QAbstractSlider::event(QEvent *e)。
[virtual protected] void QSlider::initStyleOption(QStyleOptionSlider *option) const
使用QSlider 中的值初始化option 。当子类需要QStyleOptionSlider ,但又不希望自己填写所有信息时,此方法非常有用。
另请参阅 QStyleOption::initFrom()。
[override virtual] QSize QSlider::minimumSizeHint() const
重新实现了属性QWidget::minimumSizeHint 的访问函数。
[override virtual protected] void QSlider::mouseMoveEvent(QMouseEvent *ev)
重写:QWidget::mouseMoveEvent(QMouseEvent *event)。
[override virtual protected] void QSlider::mousePressEvent(QMouseEvent *ev)
重写了:QWidget::mousePressEvent(QMouseEvent *event)。
[override virtual protected] void QSlider::mouseReleaseEvent(QMouseEvent *ev)
重写了:QWidget::mouseReleaseEvent(QMouseEvent *event)。
[override virtual protected] void QSlider::paintEvent(QPaintEvent *ev)
重写了:QWidget::paintEvent(QPaintEvent *event)。
[override virtual] QSize QSlider::sizeHint() const
重新实现了属性QWidget::sizeHint 的访问函数。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.