QDial Class
QDial类提供了一个圆形的范围控制(如速度计或电位器)。
Header | #include < QDial > |
---|---|
qmake | QT += widgets |
Inherits | QAbstractSlider |
Inherited By |
详细说明
当用户需要在程序可定义的范围内控制一个值时,使用QDial,该范围要么环绕(例如,角度从0到359度测量),要么对话框布局需要一个正方形小部件。
由于QDial继承自QAbstractSlider,因此拨号盘的行为与滑块类似。当wrapping() 为false(默认设置)时,滑块和刻度盘之间没有真正的区别。它们共享相同的信号、插槽和成员函数。使用哪一种取决于用户的期望和应用程序的类型。
当滑块移动时,刻度盘最初会连续发出valueChanged() 信号;通过禁用跟踪属性,可以减少其发出信号的频率。即使禁用了跟踪,sliderMoved() 信号也会连续发出。
当按下和释放鼠标按钮时,表盘还会发出sliderPressed() 和sliderReleased() 信号。请注意,拨号盘的值可以在不发出这些信号的情况下更改,因为键盘和滚轮也可以用来更改值。
与滑块不同的是,QDial尝试绘制一个“漂亮”的槽口数,而不是每行一步绘制一个槽口。如果可能的话,绘制的凹痕数量是每条线一步一个,但如果没有足够的像素绘制每个凹痕,QDial将跳过凹痕尝试并绘制统一的集合(例如,通过绘制每秒钟或第三个凹痕)。
与滑块一样,表盘使QAbstractSlider函数setValue()作槽函数。
拨号盘的键盘界面相当简单:左/上和右/下箭头键按定义的单步调整拨号盘的值,上翻页和下翻页按定义的页步调整拨号盘的值,Home和End键将值设置为定义的最小值和最大值。
如果使用鼠标滚轮调整刻度盘,则增量值由wheelScrollLines乘以singleStep和pageStep的较小值确定。
属性
-
notchSize: const int 当前槽口大小
凹口大小以范围控制单位表示,而不是以像素表示,如果可能的话,它是singleStep() 的倍数,将导致屏幕上的凹口大小接近notchTarget() 。
默认情况下,此属性的值为1。Access functions:
- int notchSize() const
-
notchTarget: qreal 凹口之间的目标像素数
凹口目标是每个凹口之间QDial尝试放置的像素数。
实际大小可能与目标大小不同。
默认凹口目标为3.7像素。Access functions:
-
qreal notchTarget() const
-
void setNotchTarget(double target)
默认 setNotchTarget (10)
-
-
notchesVisible: bool 是否显示凹口
如果该属性为真,则在刻度盘周围绘制一系列凹口,以指示可用值的范围;否则不显示凹口。
默认情况下,此属性处于禁用状态。Access functions:
-
bool notchesVisible() const
-
void setNotchesVisible(bool visible)
默认 setNotchesVisible (true);
-
-
wrapping: bool 是否启用环绕包装
如果为true,则启用环绕;否则,将在刻度盘底部插入一些空格以分隔有效值范围的两端。
如果启用,箭头可以指向刻度盘上的任何角度。如果禁用,箭头将限制在表盘的上部;如果将其旋转到表盘底部的空间中,箭头将被夹在有效值范围的最近端。
默认情况下,此属性为false。Access functions:
-
bool wrapping() const
-
void setWrapping(bool on)
默认 setWrapping (true);
-
公共函数
构造析构
- QDial(QWidget *parent = nullptr)
- virtual ~QDial()
属性相关
- int notchSize() const
- qreal notchTarget() const
- void setNotchTarget(double target)
- bool notchesVisible() const
- bool wrapping() const
重写的公共函数
- virtual QSize minimumSizeHint() const override
- virtual QSize sizeHint() const override
公共槽
- void setNotchesVisible(bool visible) 属性相关
- void setWrapping(bool on) 属性相关
受保护的函数
- void initStyleOption(QStyleOptionSlider *option) const
重写的受保护的函数
- virtual bool event(QEvent *e) override
- virtual void mouseMoveEvent(QMouseEvent *e) override
- virtual void mousePressEvent(QMouseEvent *e) override
- virtual void mouseReleaseEvent(QMouseEvent *e) override
- virtual void paintEvent(QPaintEvent *pe) override
- virtual void resizeEvent(QResizeEvent *e) override
- virtual void sliderChange(QAbstractSlider::SliderChange change) override