QDial类

QDial类提供了一个圆形范围控件(如速度计或电位器)。更多...

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

属性

公共函数

QDial(QWidget *parent = nullptr)
虚拟~QDial()
intnotchSize() const
qrealnotchTarget() const
boolnotchesVisible() const
voidsetNotchTarget(double target)
boolwrapping() const

重实现的公共函数

虚拟minimumSizeHint() const override
虚拟sizeHint() const override

公共槽

voidsetNotchesVisible(bool visible)
voidsetWrapping(bool on)

保护函数

虚拟initStyleOption(QStyleOptionSlider *option) const

重实现的保护函数

虚拟event(QEvent *e) override
虚拟mouseMoveEvent(QMouseEvent *e) override
虚拟mousePressEvent(QMouseEvent *e) override
虚拟mouseReleaseEvent(QMouseEvent *e) override
虚拟paintEvent(QPaintEvent *pe) override
虚拟resizeEvent(QResizeEvent *e) override
虚拟sliderChange(QAbstractSlider::SliderChange change) override

详细描述

当用户需要在程序定义的范围内控制一个值时,会使用QDial,范围可以环绕(例如,角度从0度到359度)或对话框布局需要正方形小部件。

由于QDial继承自QAbstractSlider,其行为与滑动条相似。当wrapping() 为假(默认设置)时,滑动条和旋钮之间没有真正区别。它们都共享相同的信号、槽和成员函数。您使用哪种取决于用户的期望和应用程序的类型。

初始时,旋钮在滑动条移动时连续发出 valueChanged() 信号;您可以通过禁用 tracking 属性来减少信号的发出频率。即使在禁用跟踪时,sliderMoved() 信号也会连续发出。

当鼠标按钮按下和释放时,旋钮还会发出 sliderPressed() 和 sliderReleased() 信号。请注意,由于键盘和鼠标滚轮也可以用来更改值,旋钮的值可能会改变而不会发出这些信号。

与滑动条不同,QDial尝试绘制合适的刻度数,而不是每行一步一个。如果可能,绘制的刻度数与每行一步一个相匹配,但如果没有足够的像素绘制每个刻度,QDial将跳过一些刻度,以尝试绘制一个均匀的集合(例如,绘制每第二个或第三个刻度)。

与滑动条一样,旋钮将 QAbstractSlider 函数 setValue() 作为槽提供。

旋钮的键盘界面相当简单:左/上和右/下箭头键通过定义的 singleStep 调整旋钮的 value,Page Up 和 Page Down 通过定义的 pageStep,而 Home 和 End 键将值设置为定义的 minimummaximum 值。

如果您使用鼠标滚轮调整旋钮,则增量值由 wheelScrollLines 乘以 singleSteppageStep 中的较小值确定。

另请参阅 QScrollBarQSpinBoxQSlider滑动条示例

属性文档

[只读] notchSize : const int

此属性保留当前刻度大小

刻度大小是在范围控件单元中,而不是像素,计算结果是等于 singleStep() 的一个乘数,其屏幕上刻度大小接近 notchTarget()。

访问函数

intnotchSize() const

另请参阅 notchTarget() 和 singleStep

notchTarget : qreal

此属性保留目标刻度之间的像素数

刻度目标是 QDial 尝试放在每个刻度之间的像素数。

实际大小可能与目标大小不同。

默认刻度目标是3.7像素。

访问函数

qrealnotchTarget() const
voidsetNotchTarget(double target)

notchesVisible : bool

该属性表示是否显示缺口

如果该属性为true,则会在仪表周围绘制一系列缺口,以指示可用值的范围;否则不会显示任何缺口。

默认情况下,此属性为禁用状态。

访问函数

boolnotchesVisible() const
voidsetNotchesVisible(bool visible)

wrapping : bool

该属性表示是否启用缠绕

如果为true,则启用缠绕;否则在仪表底部插入一些空间,以分隔有效值范围的端点。

如果启用,箭头可以放置在仪表上的任何角度。如果禁用,箭头将限制在仪表的上部;如果旋转到仪表底部的空间中,它将被夹到有效值范围内的最近端点。

默认情况下,该属性为false

访问函数

boolwrapping() const
voidsetWrapping(bool on)

成员函数文档

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

构建一个仪表。

parent参数会传递给QAbstractSlider构造函数。

[虚,空操作异常] QDial::~QDial()

销毁仪表。

[重写虚保护] bool QDial::event(QEvent *e)

重新实现了:QAbstractSlider::event(QEvent *e)。

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

使用此QDial的值来初始化option。当子类需要QStyleOptionSlider但不希望自己填写所有信息时,此方法非常有用。

另请参阅QStyleOption::initFrom

[重写虚] QSize QDial::minimumSizeHint() const

重新实现了属性访问函数:QWidget::minimumSizeHint

[重写虚保护] void QDial::mouseMoveEvent(QMouseEvent *e)

重新实现了:QWidget::mouseMoveEvent(QMouseEvent *event)。

[重写虚保护] void QDial::mousePressEvent(QMouseEvent *e)

重新实现了:QWidget::mousePressEvent(QMouseEvent *event)。

[重写虚保护] void QDial::mouseReleaseEvent(QMouseEvent *e)

重新实现了:QWidget::mouseReleaseEvent(QMouseEvent *event)。

[重写虚保护] void QDial::paintEvent(QPaintEvent *pe)

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

[重写虚保护] void QDial::resizeEvent(QResizeEvent *e)

重实现了: QWidget::resizeEvent(QResizeEvent *event).

[重写虚] QSize QDial::sizeHint() const

重实现了对属性的保护函数: QWidget::sizeHint.

[重写虚保护] void QDial::sliderChange(QAbstractSlider::SliderChange change)

重实现了: QAbstractSlider::sliderChange(QAbstractSlider::SliderChange change).

© 2024 The Qt Company Ltd. 本文档中的贡献版权属于各自的拥有者。本提供的文档是根据由自由软件基金会发布的 GNU自由文档许可协议版本1.3 的条款许可的。Qt及其相关标志是芬兰及其它国家/地区的The Qt Company Ltd.的商标。所有其它商标均为其拥有者的财产。