import QtQuick 2.9 import QtQuick.Window 2.3 import QtQuick.Controls 2.0 import QtQuick.Controls 2.2 import QtQuick.Controls.Styles 1.4 import QtGraphicalEffects 1.12 import QtQuick.Controls 1.2 import "../helpbutton" import myDesktop 1.0 Item { id: settings visible: false HelpMessages { anchors.fill: parent z: 105 appName: "设置" appVersion: "Version 1.0.2" subtoolText: "1.此软件是设置媒体音量(扬声器的音量),及点击关机、重启和退出整个App桌面。" versionText: "1.【Version 1.0.0 2020-10-15】。\n初始版本\n2.【Version 1.0.1 2020-12-09】。\n兼容480x272分辨率\n3.【Version 1.0.2 2021-07-14】。\n退出桌面黑屏处理" } onVisibleChanged: { formState.state == 'right' ? formState.state = '' : formState.state = 'right' } Component.onCompleted: { settings.x = parent.width } MyDesktop { id: myDesktop onSysVolumeChanged: { system_volume_slider.value = Number(sysVolume) } } Item { id: formState states: State { name: "right" PropertyChanges { target: settings x: 0 } } transitions: Transition { NumberAnimation { property: "x" easing.type: Easing.InOutQuart duration: 500 } } } Flickable { id : flickable anchors.fill: parent contentWidth: parent.width contentHeight: smallScreen ? parent.height + 208 : parent.height + 20 ScrollBar.vertical: ScrollBar { visible: smallScreen ? true : false id: scrollBarVertical1 z: 20 width: 5 hoverEnabled: true background: Rectangle {color: "#33bbbbbb"} onActiveChanged: { active = true; } Component.onCompleted: { scrollBarVertical1.active = true; } contentItem: Rectangle{ implicitWidth: 5 implicitHeight: 100 radius: 2 color: scrollBarVertical1.hovered ? "#25cfea" : "#88bbbbbb" } } Text { id: settingsText anchors.top: parent.top anchors.topMargin: 60 anchors.left: parent.left anchors.leftMargin: 20 text: qsTr("设置") color: "white" font.pixelSize: 25 } Image { id: bellImage source: "qrc:/settings/images/bell.png" anchors.right: volumeText.left anchors.rightMargin: 10 opacity: 0.7 anchors.verticalCenter: volumeText.verticalCenter } Text { id: volumeText text: qsTr("媒体音量,扬声器音量和耳机音量设置") color: "white" font.pixelSize: 15 anchors.top: settingsText.bottom anchors.topMargin: 30 anchors.left: parent.left anchors.leftMargin: 80 } Dialog { id: exitDialog width: parent.width height: parent.height anchors.centerIn: parent background: Rectangle { anchors.fill: parent color: "#000000" Text { id: name text: qsTr("") color: "white" anchors.centerIn: parent font.pixelSize: 15 font.bold: true } } } Timer { id: timerClose interval: 1000 repeat: false running: false onTriggered: { Qt.quit() } } Slider { id: system_volume_slider height: 50 width: 280 anchors.top: volumeText.bottom anchors.topMargin: 30 anchors.left: parent.left anchors.leftMargin: 50 updateValueWhileDragging: true stepSize: 1 maximumValue: 127 property bool handled: false onPressedChanged: { handled = !handled if (!handled) myDesktop.setSystemVolume(value) } style: SliderStyle { groove: Rectangle { id:kk width: control.width height: 30 radius: 8 color: "gray" Rectangle { width: styleData.handlePosition height: 30 color: "#27e0fb" radius: 8 } } handle: Rectangle { width: 1 height: 30 color: "transparent" Text { id: pencent anchors.bottom: parent.top color: "#27e0fb" font.pixelSize: 18 text: String((control.value / 127 * 100).toFixed(1))/*.slice(0,2)*/ + "%" } } } } ListModel { id: systemModel ListElement {name: ""} ListElement {name: ""} ListElement {name: ""} function getIcon(index, id) { var data = [ ["images/close.png"], ["images/poweroff.png"], ["images/reboot.png"], ] return data[index][0]; } function getItemName(index, id) { var data = [ ["退出桌面"], ["关机"], ["重启"], ] return data[index][0]; } function getNature(index, id) { var data = [ ["您将退出桌面程序"], ["您的系统将会关机"], ["您的系统将会重启"], ] return data[index][0]; } } GridView { id: settingsView visible: true anchors.top: system_volume_slider.bottom anchors.topMargin: 80 anchors.left: parent.left anchors.right: parent.right anchors.bottom: parent.bottom focus: true //interactive: false cellWidth: settingsView.width / 3 cellHeight: (settingsView.height) / 3 model: systemModel delegate: systemDelegate } Component { id: systemDelegate Rectangle { width: settingsView.width / 3 height: settingsView.cellHeight color: "transparent" Rectangle { id :rectangle width: 150 height: 150 radius: 8 color: "#aabbbbbb" anchors.centerIn: parent Image { id: icon antialiasing: true source: settingsView.model.getIcon(index, 0) //anchors.fill: parent anchors.left: parent.left anchors.leftMargin: 20 anchors.top: parent.top anchors.topMargin: 20 fillMode: Image.Stretch } Text { anchors.top: icon.bottom anchors.left: parent.left anchors.leftMargin: 20 anchors.topMargin: 20 id: textInfo text: qsTr(settingsView.model.getItemName(index, 0)) color: "white" font.pixelSize: 20 font.bold: true } Text { anchors.top: textInfo.bottom anchors.topMargin: 20 anchors.left: parent.left anchors.leftMargin: 20 id: nature text: qsTr(settingsView.model.getNature(index, 0)) color: "#ccffffff" font.pixelSize: 15 font.bold: true } MouseArea { anchors.fill: parent hoverEnabled: true onClicked: { settingsView.currentIndex = index switch (settingsView.currentIndex) { case 0: exitDialog.open() timerClose.start() break; case 1: poweroffFlag = true Qt.quit() break; case 2: rebootFlag = true Qt.quit() break; } } onEntered: { settingsView.currentIndex = index //rectangle.opacity = 0.5 } onPressed:{ rectangle.opacity = 0.8 settingsView.currentIndex = index } onReleased:{ rectangle.opacity = 1 } onExited: rectangle.opacity = 1 } } } } } }