Qt Quick 3D - 虚拟助手示例
// Copyright (C) 2021 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause import QtQuick import QtQuick.Layouts import QtQuick.Controls import VirtualAssistant.Constants Pane { id: root topPadding: 10 leftPadding: 40 rightPadding: 40 bottomPadding: 40 required property var camera property alias cameraControllerEnabled: enableCamera.checked property alias cameraFov: fov.value property alias skyboxRotation: skyboxRot.value ColumnLayout { anchors.fill: parent spacing: 10 Label { text: qsTr("Scene settings") font.pixelSize: 24 Layout.alignment: Qt.AlignHCenter } CheckBox { id: enableCamera Layout.alignment: Qt.AlignHCenter text: qsTr("Enable Camera Controller") } ColumnLayout { Layout.alignment: Qt.AlignHCenter spacing: 5 Label { Layout.alignment: Qt.AlignHCenter text: qsTr("Camera Fov: ") + fov.value font.pixelSize: 14 } Slider { id: fov from: 35 to: 125 value: 80 stepSize: 1 } } ColumnLayout { Layout.alignment: Qt.AlignHCenter spacing: 5 Label { Layout.alignment: Qt.AlignHCenter text: qsTr("Skybox rotation: ") + skyboxRot.value font.pixelSize: 14 } Slider { id: skyboxRot from: 0 to: 360 value: 180 stepSize: 1 } } ColumnLayout { spacing: 4 Layout.alignment: Qt.AlignHCenter Label { Layout.alignment: Qt.AlignHCenter text: qsTr("Camera position: ") } Row { Layout.alignment: Qt.AlignHCenter spacing: 5 Label { text: "x: " + root.camera.x.toFixed(2) } Label { text: "y: " + root.camera.y.toFixed(2) } Label { text: "z: " + root.camera.z.toFixed(2) } } } Button { Layout.alignment: Qt.AlignHCenter text: qsTr("Reset default settings") onClicked: { fov.value = Constants.defaultFov; enableCamera.checked = false; skyboxRot.value = Constants.defaultRotation; root.camera.position = Constants.defaultCameraPosition } } Item { Layout.fillHeight: true Layout.fillWidth: true } } }