QSlider Class
QSlider小部件提供垂直或水平滑块。
Header | #include < QSlider > |
---|---|
qmake | QT += widgets |
Inherits | QAbstractSlider |
Inherited By |
详细说明
滑块是控制有界值的经典小部件。它允许用户沿水平或垂直槽移动滑块手柄,并将手柄位置转换为合法范围内的整数值。
QSlider只有很少的功能;大部分功能都在QAbstractSlider中。最有用的函数是setValue() ,用于直接将滑块设置为某个值;triggerAction() 用于模拟单击的效果(对快捷键有用);setSingleStep() 、setPageStep() 用于设置步骤;setMinimum() 和setMaximum() 用于定义滚动条的范围。
QSlider提供了控制记号的方法。您可以使用setTickPosition() 来指示记号的位置,使用setTickInterval() 来指示需要多少记号。可以分别使用tickPosition() 和tickInterval() 函数查询当前设置的记号位置和间隔。
QSlider继承了一组全面的信号:
Signal | Description |
---|---|
valueChanged() | 滑块值更改时发出。tracking() 确定此信号是否在用户交互期间发出。 |
sliderPressed() | 当用户开始拖动滑块时发出。 |
sliderMoved() | 当用户拖动滑块时发出。 |
sliderReleased() | 当用户释放滑块时发出。 |
QSlider只提供整数范围。请注意,尽管QSlider处理非常大的数字,但用户很难在非常大的范围内准确地使用滑块。
滑块接受焦点在选项卡上,并提供鼠标滚轮和键盘界面。键盘界面如下:
- 左/右移动水平滑块一步
- 向上/向下移动垂直滑块一步
- PageUp向上移动一页
- PageDown向下移动一页
- 原点移到起点(mininum)
- 末端移动到末端(最大值)
公共类型
-
enum TickPosition
此枚举指定相对于滑块的槽和用户移动的手柄绘制记号的位置。Constant Value Description NoTicks 0 不画任何记号。 TicksAbove 1 在(水平)滑块上方绘制记号 TicksBelow 2 在(水平)滑块下方绘制记号 TicksBothSides 3 在槽的两侧画记号。 TicksLeft TicksAbove 在(垂直)滑块的左侧绘制记号 TicksRight TicksBelow 在(垂直)滑块的右侧绘制记号
属性
-
tickInterval: int 记号之间的间隔
这是一个值间隔,而不是像素间隔。如果为0,滑块将在singleStep和pageStep之间进行选择。
默认值为0。Access functions:
- int tickInterval() const
- void setTickInterval(int ti)
-
tickPosition: TickPosition 滑块的记号位置
有效值由QSlider::TickPosition枚举描述。
默认值是QSlider::NoTicks。Access functions:
- QSlider::TickPosition tickPosition() const
- void setTickPosition(QSlider::TickPosition position)
公共函数
构造析构
- QSlider(Qt::Orientation orientation, QWidget *parent = nullptr)
- QSlider(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
受保护的函数
- 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