QSlider Class
QSlider widget 提供垂直或水平滑块。更多
Header: | #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 提供了控制 tickmarks 的方法。您可以使用setTickPosition() 指示您希望勾选的位置,使用setTickInterval() 指示您希望勾选的数量。您可以使用tickPosition() 和tickInterval() 函数分别查询当前设置的勾选位置和间隔。
QSlider 继承了一整套信号:
信号 | 说明 |
---|---|
valueChanged() | 当滑块的值发生变化时发出。跟踪()决定是否在用户交互时发出该信号。 |
sliderPressed() | 当用户开始拖动滑块时发出。 |
sliderMoved() | 用户拖动滑块时发出。 |
sliderReleased() | 当用户释放滑块时发出。 |
QSlider 只提供整数范围。请注意,虽然 QSlider 可以处理非常大的数字,但用户很难准确地使用滑块来处理非常大的范围。
滑块接受 Tab 上的焦点,并提供鼠标滚轮和键盘接口。键盘界面如下
- 向左/向右移动水平滑块一步。
- 上/下移动垂直滑块一步。
- PageUp 上移一页。
- 下一页向下移动一页。
- 首页移动到起点(最小值)。
- End 移动到终点(最大值)。
另请参阅 QScrollBar,QSpinBox,QDial 和Sliders 示例。
成员类型文档
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。
访问功能:
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 。
© 2025 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.