C
Qt Cluster: Rendering and Recovery from Main UI Failure
// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only // This file is part of the Qt Safe Renderer module import QtQuick import HelperWidgets import QtQuick.Layouts import QtQuick.Controls as Controls Column { anchors.left: parent.left anchors.right: parent.right Section { anchors.left: parent.left anchors.right: parent.right caption: qsTr("TachoMeter") SectionLayout { Label { text: qsTr("Actual RPM") } SecondColumnLayout { SpinBox { backendValue: backendValues.actualRPM minimumValue: backendValues.minimumRPM.value maximumValue: backendValues.maximumRPM.value decimals: 0 } Controls.Slider { id: rpmSlider Layout.preferredWidth: 100 minimumValue: backendValues.minimumRPM.value maximumValue: backendValues.maximumRPM.value updateValueWhileDragging: true stepSize: 1 value: backendValues.actualRPM.value onValueChanged: { backendValues.actualRPM.value = rpmSlider.value } } ExpandingSpacer { width: 30 } } Label { text: qsTr("Maximum RPM") } SecondColumnLayout { SpinBox { backendValue: backendValues.maximumRPM minimumValue: 0 maximumValue: 10000 decimals: 0 } Controls.Slider { id: maximumRPMSlider Layout.preferredWidth: 100 minimumValue: 0 maximumValue: 10000 updateValueWhileDragging: true stepSize: 1 value: backendValues.maximumRPM.value onValueChanged: { backendValues.maximumRPM.value = maximumRPMSlider.value } } ExpandingSpacer { width: 30 } } Label { text: qsTr("Minimum RPM") } SecondColumnLayout { SpinBox { backendValue: backendValues.minimumRPM minimumValue: 0 maximumValue: 10000 decimals: 0 } Controls.Slider { id: minimumRPMSlider Layout.preferredWidth: 100 minimumValue: 0 maximumValue: 10000 updateValueWhileDragging: true stepSize: 1 value: backendValues.minimumRPM.value onValueChanged: { backendValues.minimumRPM.value = minimumRPMSlider.value } } ExpandingSpacer { width: 30 } } Label { text: qsTr("Maximum Value Angle") } SecondColumnLayout { SpinBox { backendValue: backendValues.maxValueAngle minimumValue: 0 maximumValue: 360 decimals: 0 } Controls.Slider { id: maxValueAngleSlider Layout.preferredWidth: 100 minimumValue: 0 maximumValue: 360 updateValueWhileDragging: true stepSize: 1 value: backendValues.maxValueAngle.value onValueChanged: { backendValues.maxValueAngle.value = maxValueAngleSlider.value } } ExpandingSpacer { width: 30 } } Label { text: qsTr("Minimum Value Angle") } SecondColumnLayout { SpinBox { backendValue: backendValues.minValueAngle minimumValue: 0 maximumValue: 360 decimals: 0 } Controls.Slider { id: minValueAngleSlider Layout.preferredWidth: 100 minimumValue: 0 maximumValue: 360 updateValueWhileDragging: true stepSize: 1 value: backendValues.minValueAngle.value onValueChanged: { backendValues.minValueAngle.value = minValueAngleSlider.value } } ExpandingSpacer { width: 30 } } } } }