文章目录

  • 一、控件基本信息
  • 二、控件使用
  • 三、属性成员
  • 四、成员函数
  • 五、信号

一、控件基本信息

Import Statement:import QtQuick.Controls 2.14
Since:Qt 5.7
Inherits:Control


二、控件使用

Dial:是一个旋钮控件;

QML控件--Dial_输入模式

import QtQuick 2.10
import QtQuick.Window 2.10
import QtQuick.Controls 2.3

ApplicationWindow{
    visible: true;
    width: 1280;
    height: 720;

    Label{
        id: lbl;
        text: "0";
        font.bold: true;
        font.pixelSize: 28;
        anchors.centerIn: parent;
    }

    Dial {
        id: dial
        //Keys.onLeftPressed: {}
        snapMode: Dial.SnapAlways;
        stepSize: 0.1;
        wrap: true;
        onMoved: {
            lbl.text = value;
        }
    }

    Button{
        id: btnIncrease
        text: "增加"
        anchors.left: dial.right;
        anchors.leftMargin: 40;
        anchors.bottom: dial.bottom;

        onClicked: {
            dial.increase();
            lbl.text = dial.value;
        }
    }

    Button{
        id: btnDecrease
        text: "减少"
        anchors.left: btnIncrease.right;
        anchors.leftMargin: 40;
        anchors.bottom: btnIncrease.bottom;

        onClicked: {
            dial.decrease();
            lbl.text = dial.value;
        }
    }
}

表盘支持键盘操作

  • Qt.Key_Left:按 stepSize 减小值;
  • Qt.Key_Down:按 stepSize 减小值;
  • Qt.Key_Right:按 stepSize 增加值;
  • Qt.Key_Up:按 stepSize 增加值;
  • Qt.Key_Home:将值设置为 from;
  • Qt.Key_End:将值设置 to ;

三、属性成员

属性

说明

angle : real

手柄的角度;范围从-140°到140°

from : real

范围的起始值,默认值为0.0

handle : Item

旋钮的手柄,手柄充当旋钮位置的视觉指示器

inputMode : enumeration

输入模式;详解见下面

live : bool

在拖动手柄是表盘是否为value属性提供实时更新。默认为true

position : real

手柄的逻辑位置,范围为0.0 ~ 1.0

pressed : bool

是否按下旋钮;当鼠标在其上按下或按下诸如 Qt.Key_Left 之类的键时,将按下仪表盘 ;如果不想在按键时按下仪表盘。可以使用 Keys 附加属性:Keys.onLeftPressed: {}

snapMode : enumeration

对齐模式;详解见下面

stepSize : real

步长;默认值为 0.0,这导致键盘交互的有效步长为 0.1;当通过键盘交互时,步长大小决定了刻度盘值增加和减少的量。只有当 snapMode 设置为 Dial.NoSnap 以外的值时,才会考虑触摸和鼠标交互的步长

to : real

范围的结束值,默认值为1.0

value : real

当前值

wrap : real

在拖动时仪表盘是否环绕。默认为false


inputMode : enumeration 输入模式。Dial 支持三种输入模式:

  • Dial.Circular:环绕模式,默认值,光标在表盘内的位置直接反映其值;
  • Dial.Circular:环绕模式,默认值,光标在表盘内的位置直接反映其值;
  • Dial.Vertical:垂直模式;

QML控件--Dial_输入模式_02


水平和垂直输入模式使用相对输入系统,其中光标位置的变化相当于在图中的直线上


snapMode : enumeration 对齐模式;对齐模式与 stepSize 一起使用,对齐是相对stepSize而言的

  • Dial.NoSnap:不对齐(默认);【拖动手柄并不会按stepSize对齐】
  • Dial.SnapAlways:当手柄被拖动时对齐;【拖动手柄按stepSize对齐,也就是说以stepSize为步长】
  • Dial.SnapOnRelease:在拖动时不会对齐,只有在释放后才会对齐;【拖动时不对齐,但是释放后会就近对齐】

四、成员函数

成员函数

说明

void decrease()

将 value 减小 stepSize,如果未定义 stepSize,则减小 0.1。

void increase()

将 value 增加 stepSize,如果未定义 stepSize,则增加 0.1。


五、信号

信号

说明

moved()

当用户通过触摸、鼠标或按键交互移动仪表盘时,会发出此信号。