Dial QML Type

圆形刻度盘,旋转时可设置数值。更多

Import Statement: import QtQuick.Controls
Inherits:

Control

属性

信号

  • moved() (since QtQuick.Controls 2.2 (Qt 5.9))
  • wrapped(Dial.WrapDirection direction) (since 6.6)

方法

详细说明

拨盘类似于音响或工业设备上的传统拨盘旋钮。它允许用户在一定范围内指定一个值。

刻度盘的值通过value 属性设置。范围由fromto 属性设置。要启用或禁用包装,请使用wrap 属性。

刻度盘可用键盘操作。它支持以下操作:

操作按键
通过以下方式减少value stepSizeQt.Key_Left
通过以下方式降低value stepSizeQt.Key_Down
value 设置为fromQt.Key_Home
通过以下方式增加value stepSizeQt.Key_Right
通过以下方式增加value stepSizeQt.Key_Up
value 设置为toQt.Key_End

刻度盘支持三种input modesDial.CircularDial.HorizontalDial.Vertical 。圆形输入模式采用绝对输入系统,光标在刻度盘内的位置直接反映其数值。水平和垂直输入模式使用相对输入系统,光标位置的变化会 "添加 "到刻度盘的值中。

下图说明了各种输入模式跟踪移动的方向:

另请参阅 自定义刻度盘输入控件

属性文档

angle : real [read-only]

该属性表示手柄的顺时针角度,单位为度。

角度在 12 点钟位置为零,范围从startAngleendAngle

另请参阅 position,startAngle, 和endAngle


endAngle : real [since 6.6]

该属性以度为单位保存刻度盘的末端角度。

这是表盘最大值的angle ,即to 。endAngle 必须大于startAngle ,小于 720,小于或等于startAngle + 360 度。

该属性在 Qt 6.6 中引入。

另请参阅 endAngle 和angle


from : real

该属性保存范围的起始值。默认值为0.0

另请参阅 tovalue


handle : Item

该属性用于保存刻度盘的手柄。

手柄是刻度盘位置的视觉指示器。

另请参阅 自定义刻度盘


inputMode : enumeration [since QtQuick.Controls 2.5 (Qt 5.12)]

该属性表示输入模式。

拨盘支持三种输入模式:Dial.CircularDial.HorizontalDial.Vertical 。圆形输入模式采用绝对输入系统,光标在刻度盘中的位置直接反映其数值。水平和垂直输入模式使用相对输入系统,光标位置的变化会 "添加 "到刻度盘的值中。

下图说明了各种输入模式跟踪移动的方向:

默认值为Dial.Circular

该属性在 QtQuick.Controls 2.5 (Qt 5.12) 中引入。


live : bool [since QtQuick.Controls 2.2 (Qt 5.9)]

该属性保留了当手柄被拖动时,刻度盘是否为value 属性提供实时更新。

默认值为true

该属性在 QtQuick.Controls 2.2 (Qt 5.9) 中引入。

另请参阅 value


position : real [read-only]

该属性保存句柄的逻辑位置。

位置表示为控件角度范围(手柄可移动的范围)的一部分,范围为0.0 - 1.0

另请参阅 valueangle


pressed : bool

该属性表示刻度盘是否被按下。

当鼠标按在刻度盘上或按住Qt.Key_Left 等键时,刻度盘将被按下。如果您不希望在按键按下时表盘被按下(例如由于样式原因),可以使用Keys attached property

Dial {
    Keys.onLeftPressed: {}
}

这将导致只有在按下鼠标时才会按下true


snapMode : enumeration

该属性用于保存抓取模式。

捕捉模式与stepSize 配合使用,可使手柄捕捉到刻度盘上的某些点。

可能的值:

常数说明
Dial.NoSnap刻度盘不卡住(默认)。
Dial.SnapAlways拖动手柄时表盘卡住。
Dial.SnapOnRelease刻度盘在被拖动时不会卡住,只有在释放手柄后才会卡住。

另请参阅 stepSize


startAngle : real [since 6.6]

该属性保存刻度盘的起始角度(单位:度)。

它是刻度盘最小值的angle ,即from 。startAngle 必须小于endAngle ,大于 -360 且大于或等于endAngle - 360 度。

该属性在 Qt 6.6 中引入。

另请参阅 endAngleangle


stepSize : real

该属性表示步长。

步长决定了通过键盘进行交互时,刻度盘值增减的幅度。例如,如果步长为0.2 ,则刻度盘的值将以0.2 的增量增大或减小。

只有当snapMode 设置为Dial.NoSnap 以外的值时,触摸和鼠标交互才会使用步长。

默认值为0.0 ,因此键盘交互的有效步长为0.1

另请参阅 snapModeincrease() 和decrease()。


to : real

该属性用于保存范围的结束值。默认值为1.0

另请参阅 fromvalue


value : real

该属性用于保存from -to 范围内的值。默认值为0.0

另请参阅 positionlive


wrap : bool

该属性用于保存拖动时刻度盘是否缠绕。

例如,当此属性设置为true 时,拖动刻度盘经过to 位置时,手柄将定位在from 位置,反之亦然:

当此属性为false 时,无法将刻度盘拖过 from 和 to 值。

默认值为false


信号文档

[since QtQuick.Controls 2.2 (Qt 5.9)] moved()

当用户通过触摸、鼠标或按键交互式移动刻度盘时,就会发出该信号。

注: 相应的处理程序是onMoved

该信号在 QtQuick.Controls 2.2 (Qt 5.9) 中引入。


[since 6.6] wrapped(Dial.WrapDirection direction)

当刻度盘旋转时,即从最大值转到最小值,或反之亦然时,就会发出该信号。只有当wraptrue 时才会发出。direction 参数指定了完全旋转的方向,并将是以下参数之一:

常数说明
Dial.Clockwise按顺时针方向旋转的刻度盘。
Dial.CounterClockwise按逆时针方向旋转的刻度盘。

注: 相应的处理程序是onWrapped

此信号在 Qt 6.6 中引入。


方法文档

void decrease()

通过stepSize0.1 (如果stepSize 未定义)减小数值。

另请参阅 stepSize


void increase()

通过stepSize 增加数值,如果未定义stepSize ,则通过0.1 增加数值。

另请参见 stepSize


© 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.