From 3b5ce8593ff8da789476192fb4d4d3e33aaf93b5 Mon Sep 17 00:00:00 2001 From: wangguixi Date: Sat, 8 Oct 2022 11:25:29 +0800 Subject: [PATCH] init --- Time.qml | 270 ++++++++++++++++++++++++++++++++++++++ data/time/time.conf | 14 ++ data/time/time.png | Bin 0 -> 31108 bytes data/time/time.qml | 270 ++++++++++++++++++++++++++++++++++++++ main.cpp | 20 +++ main.qml | 15 +++ qml.qrc | 9 ++ ukui-system-appwidget.pro | 36 +++++ 8 files changed, 634 insertions(+) create mode 100644 Time.qml create mode 100644 data/time/time.conf create mode 100644 data/time/time.png create mode 100644 data/time/time.qml create mode 100644 main.cpp create mode 100644 main.qml create mode 100644 qml.qrc create mode 100644 ukui-system-appwidget.pro diff --git a/Time.qml b/Time.qml new file mode 100644 index 0000000..9c941cd --- /dev/null +++ b/Time.qml @@ -0,0 +1,270 @@ +import QtQuick 2.0 +import QtQml 2.12 +import QtQuick.Layouts 1.12 +import org.ukui.appwidget 1.0 +//import QtQuick.Controls 2.0 +AppWidget { + id:appwidget + appname: "time" + visible: true + width: 448 + height: 162 +// color: "gray" +// color: "transparent" +// border.color: "red" +// radius: 15 + property string timeformat: "12"; + property string dateformat: "cn" + property string hour; + property string minute; + property int hournumber; + property string week; + property string amorpm; + property bool v: false + property string themename; + + Timer { + id: gettime; + interval: 100; + running: true; + repeat: true; + triggeredOnStart: true + onTriggered: { + appwidget.hour = Qt.formatTime(new Date(),"hh"); + appwidget.minute = Qt.formatTime(new Date(),"mm"); + if(appwidget.timeformat === "12") { + appwidget.hournumber = Number(appwidget.hour); + if(appwidget.hournumber > 12) { + if(appwidget.dateformat == "cn") { + ampm.text = "下午" + } + else if(appwidget.dateformat == "en") { + ampm.text = "PM" + } + appwidget.hournumber -= 12; + } + else { + if(appwidget.dateformat == "cn") { + ampm.text = "上午" + } + else if(appwidget.dateformat == "en") { + ampm.text = "AM" + } + } + + if(appwidget.hournumber < 10) { + time1rec.width = 244 + time1.width = 244 +// console.log("=12制 宽度=",time1rec.width); + }else { + time1rec.width = 294 + time1.width = 294 +// console.log("=12制 宽度=",time1rec.width); + } + + appwidget.hour = appwidget.hournumber.toString(); + time1.text = appwidget.hour + ":" + appwidget.minute +// console.log("=12制=",time1.text); + } + else { + time2.text = appwidget.hour + ":" + appwidget.minute +// console.log("=24制=",time2.text); + } + week1.text = Qt.formatDate(new Date(),"ddd") + week2.text = Qt.formatDate(new Date(),"ddd") + + if(dateformat == "cn") { + date1.text = Qt.formatDate(new Date(),"MM/dd"); + date2.text = Qt.formatDate(new Date(),"MM/dd"); + } + if(dateformat == "en") { + date1.text = Qt.formatDate(new Date(),"MM-dd"); + date2.text = Qt.formatDate(new Date(),"MM-dd"); + } + } + } + + + Rectangle { + id :twelverec + color: "transparent" +// radius: 15 + anchors.fill: parent + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + visible: !v + Rectangle { + id :time1rec + color: "transparent" +// border.color: "green" + anchors.verticalCenter: parent.verticalCenter + width: 244 + height: 112 + Text { + id: time1 + anchors.fill:parent + verticalAlignment: TextInput.AlignVCenter + color: "#FAFAFA" + font.pixelSize:112 + font.letterSpacing: 0 + font.family: "STxihei" + } + } + Rectangle { + //间隔 + id :spacing1 + width: 16 + height: 112 + anchors.left: time1rec.right + anchors.verticalCenter: parent.verticalCenter + color: "transparent" + } + Rectangle { + id :daterec + color: "transparent" +// border.color: "pink" + width: 137 + height: 96 + anchors.verticalCenter: parent.verticalCenter + Layout.fillWidth: true + anchors.left: spacing1.right + + ColumnLayout{ + width: 137 + height: 96 + anchors.centerIn: parent + Text { + id: ampm + color: "#FAFAFA"; + font.pixelSize:40; + font.letterSpacing: 0 + font.family: "STxihei" + verticalAlignment: TextInput.AlignVCenter + } + RowLayout { + Text { + id: week1 + color: "#FAFAFA"; + font.pixelSize: 28; + font.letterSpacing: 0 + font.family: "STxihei" + verticalAlignment: TextInput.AlignVCenter + } + Text { + id: date1 + color: "#FAFAFA"; + font.pixelSize: 28; + font.letterSpacing: 0 + font.family: "STxihei" + verticalAlignment: TextInput.AlignVCenter + } + } + } + } + } + + + Rectangle{ + id :twentyfoursystem + color: "transparent" +// radius: 15 + anchors.fill: parent + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + visible: v + Rectangle { + id :time2rec + color: "transparent" +// border.color: "pink" + anchors.verticalCenter: parent.verticalCenter + width: 294 + height: 112 + Text { + id: time2 + anchors.fill:parent + verticalAlignment: TextInput.AlignVCenter + color: "#FAFAFA" + font.pixelSize:112 + font.letterSpacing:0 + font.family: "STxihei" + } + } + Rectangle { + //间隔 + id :spacing2 + width: 16 + height: 112 + anchors.left: time2rec.right + anchors.verticalCenter: parent.verticalCenter + color: "transparent" + } + Rectangle { + color: "transparent" + width: 87 + height: 112 + Layout.fillWidth: true + anchors.verticalCenter: parent.verticalCenter + anchors.left: spacing2.right + + ColumnLayout{ + width: 87 + height: 112 + anchors.centerIn: parent + Layout.fillWidth: true + Text { + id: week2 + color: "#FAFAFA"; + font.pixelSize:40; + font.letterSpacing: 0 + font.family: "STxihei" + verticalAlignment: TextInput.AlignVCenter + } + Text { + id: date2 + color: "#FAFAFA"; + font.pixelSize:40; + font.letterSpacing: 0 + font.family: "STxihei" + verticalAlignment: TextInput.AlignVCenter + } + } + } + } + + Component.onCompleted: { + + gettime.start(); +// appwidget.update.connect(appwidget.onupdate); + console.log("qml 接收到数据更新信号"); + + appwidget.creatGsetting("org.ukui.control-center.panel.plugins"); + appwidget.gsettingUpdate.connect(appwidget.onGsettingUpdate); + timeformat = appwidget.getGsettingValue("org.ukui.control-center.panel.plugins","hoursystem"); + dateformat = appwidget.getGsettingValue("org.ukui.control-center.panel.plugins","date"); + if(timeformat == "24") { + v = true + }else { + v = false + } + console.log("当前gsetting为", timeformat, dateformat); + } + function onGsettingUpdate(key, value) + { + if(key === "hoursystem") + { + timeformat = value + if(timeformat == "24") { + v = true + }else { + v = false + } + } + if(key === "date") + { + dateformat = value + } + } +} + + + diff --git a/data/time/time.conf b/data/time/time.conf new file mode 100644 index 0000000..db6a6d2 --- /dev/null +++ b/data/time/time.conf @@ -0,0 +1,14 @@ +[AppWidget] +name = time +providerName = clock +previewPath = /usr/share/appwidgetdemo/clock/time.png +qmlFile = /usr/share/appwidget/qml/time.qml +zoom = false +rightButton = false +repeatPlacement = false +minWidget = 448 +minHeight = 162 +targetCellWidth = 2 +targetCellHeight = 1 +updatePeriodMillis = 0 +describe = this is a datetime diff --git a/data/time/time.png b/data/time/time.png new file mode 100644 index 0000000000000000000000000000000000000000..8f37bd42e87bb0fb34bc9df6668f1213377ff749 GIT binary patch literal 31108 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 bwXpvK3MLj{^F1!o00000NkvXXu0mjfu`p(O literal 0 HcmV?d00001 diff --git a/data/time/time.qml b/data/time/time.qml new file mode 100644 index 0000000..9c941cd --- /dev/null +++ b/data/time/time.qml @@ -0,0 +1,270 @@ +import QtQuick 2.0 +import QtQml 2.12 +import QtQuick.Layouts 1.12 +import org.ukui.appwidget 1.0 +//import QtQuick.Controls 2.0 +AppWidget { + id:appwidget + appname: "time" + visible: true + width: 448 + height: 162 +// color: "gray" +// color: "transparent" +// border.color: "red" +// radius: 15 + property string timeformat: "12"; + property string dateformat: "cn" + property string hour; + property string minute; + property int hournumber; + property string week; + property string amorpm; + property bool v: false + property string themename; + + Timer { + id: gettime; + interval: 100; + running: true; + repeat: true; + triggeredOnStart: true + onTriggered: { + appwidget.hour = Qt.formatTime(new Date(),"hh"); + appwidget.minute = Qt.formatTime(new Date(),"mm"); + if(appwidget.timeformat === "12") { + appwidget.hournumber = Number(appwidget.hour); + if(appwidget.hournumber > 12) { + if(appwidget.dateformat == "cn") { + ampm.text = "下午" + } + else if(appwidget.dateformat == "en") { + ampm.text = "PM" + } + appwidget.hournumber -= 12; + } + else { + if(appwidget.dateformat == "cn") { + ampm.text = "上午" + } + else if(appwidget.dateformat == "en") { + ampm.text = "AM" + } + } + + if(appwidget.hournumber < 10) { + time1rec.width = 244 + time1.width = 244 +// console.log("=12制 宽度=",time1rec.width); + }else { + time1rec.width = 294 + time1.width = 294 +// console.log("=12制 宽度=",time1rec.width); + } + + appwidget.hour = appwidget.hournumber.toString(); + time1.text = appwidget.hour + ":" + appwidget.minute +// console.log("=12制=",time1.text); + } + else { + time2.text = appwidget.hour + ":" + appwidget.minute +// console.log("=24制=",time2.text); + } + week1.text = Qt.formatDate(new Date(),"ddd") + week2.text = Qt.formatDate(new Date(),"ddd") + + if(dateformat == "cn") { + date1.text = Qt.formatDate(new Date(),"MM/dd"); + date2.text = Qt.formatDate(new Date(),"MM/dd"); + } + if(dateformat == "en") { + date1.text = Qt.formatDate(new Date(),"MM-dd"); + date2.text = Qt.formatDate(new Date(),"MM-dd"); + } + } + } + + + Rectangle { + id :twelverec + color: "transparent" +// radius: 15 + anchors.fill: parent + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + visible: !v + Rectangle { + id :time1rec + color: "transparent" +// border.color: "green" + anchors.verticalCenter: parent.verticalCenter + width: 244 + height: 112 + Text { + id: time1 + anchors.fill:parent + verticalAlignment: TextInput.AlignVCenter + color: "#FAFAFA" + font.pixelSize:112 + font.letterSpacing: 0 + font.family: "STxihei" + } + } + Rectangle { + //间隔 + id :spacing1 + width: 16 + height: 112 + anchors.left: time1rec.right + anchors.verticalCenter: parent.verticalCenter + color: "transparent" + } + Rectangle { + id :daterec + color: "transparent" +// border.color: "pink" + width: 137 + height: 96 + anchors.verticalCenter: parent.verticalCenter + Layout.fillWidth: true + anchors.left: spacing1.right + + ColumnLayout{ + width: 137 + height: 96 + anchors.centerIn: parent + Text { + id: ampm + color: "#FAFAFA"; + font.pixelSize:40; + font.letterSpacing: 0 + font.family: "STxihei" + verticalAlignment: TextInput.AlignVCenter + } + RowLayout { + Text { + id: week1 + color: "#FAFAFA"; + font.pixelSize: 28; + font.letterSpacing: 0 + font.family: "STxihei" + verticalAlignment: TextInput.AlignVCenter + } + Text { + id: date1 + color: "#FAFAFA"; + font.pixelSize: 28; + font.letterSpacing: 0 + font.family: "STxihei" + verticalAlignment: TextInput.AlignVCenter + } + } + } + } + } + + + Rectangle{ + id :twentyfoursystem + color: "transparent" +// radius: 15 + anchors.fill: parent + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + visible: v + Rectangle { + id :time2rec + color: "transparent" +// border.color: "pink" + anchors.verticalCenter: parent.verticalCenter + width: 294 + height: 112 + Text { + id: time2 + anchors.fill:parent + verticalAlignment: TextInput.AlignVCenter + color: "#FAFAFA" + font.pixelSize:112 + font.letterSpacing:0 + font.family: "STxihei" + } + } + Rectangle { + //间隔 + id :spacing2 + width: 16 + height: 112 + anchors.left: time2rec.right + anchors.verticalCenter: parent.verticalCenter + color: "transparent" + } + Rectangle { + color: "transparent" + width: 87 + height: 112 + Layout.fillWidth: true + anchors.verticalCenter: parent.verticalCenter + anchors.left: spacing2.right + + ColumnLayout{ + width: 87 + height: 112 + anchors.centerIn: parent + Layout.fillWidth: true + Text { + id: week2 + color: "#FAFAFA"; + font.pixelSize:40; + font.letterSpacing: 0 + font.family: "STxihei" + verticalAlignment: TextInput.AlignVCenter + } + Text { + id: date2 + color: "#FAFAFA"; + font.pixelSize:40; + font.letterSpacing: 0 + font.family: "STxihei" + verticalAlignment: TextInput.AlignVCenter + } + } + } + } + + Component.onCompleted: { + + gettime.start(); +// appwidget.update.connect(appwidget.onupdate); + console.log("qml 接收到数据更新信号"); + + appwidget.creatGsetting("org.ukui.control-center.panel.plugins"); + appwidget.gsettingUpdate.connect(appwidget.onGsettingUpdate); + timeformat = appwidget.getGsettingValue("org.ukui.control-center.panel.plugins","hoursystem"); + dateformat = appwidget.getGsettingValue("org.ukui.control-center.panel.plugins","date"); + if(timeformat == "24") { + v = true + }else { + v = false + } + console.log("当前gsetting为", timeformat, dateformat); + } + function onGsettingUpdate(key, value) + { + if(key === "hoursystem") + { + timeformat = value + if(timeformat == "24") { + v = true + }else { + v = false + } + } + if(key === "date") + { + dateformat = value + } + } +} + + + diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..db8d3b8 --- /dev/null +++ b/main.cpp @@ -0,0 +1,20 @@ +#include +#include + +int main(int argc, char *argv[]) +{ + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + + QGuiApplication app(argc, argv); + + QQmlApplicationEngine engine; + const QUrl url(QStringLiteral("qrc:/main.qml")); + QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, + &app, [url](QObject *obj, const QUrl &objUrl) { + if (!obj && url == objUrl) + QCoreApplication::exit(-1); + }, Qt::QueuedConnection); + engine.load(url); + + return app.exec(); +} diff --git a/main.qml b/main.qml new file mode 100644 index 0000000..afd1e26 --- /dev/null +++ b/main.qml @@ -0,0 +1,15 @@ +import QtQuick 2.12 +import QtQuick.Window 2.12 + +Window { + visible: true + width: 640 + height: 480 + color: "black" + title: qsTr("Hello World") + + + Time{ + + } +} diff --git a/qml.qrc b/qml.qrc new file mode 100644 index 0000000..8c114e5 --- /dev/null +++ b/qml.qrc @@ -0,0 +1,9 @@ + + + main.qml + data/time/time.conf + data/time/time.png + data/time/time.qml + Time.qml + + diff --git a/ukui-system-appwidget.pro b/ukui-system-appwidget.pro new file mode 100644 index 0000000..467c0b0 --- /dev/null +++ b/ukui-system-appwidget.pro @@ -0,0 +1,36 @@ +QT += quick + +CONFIG += c++11 + +# The following define makes your compiler emit warnings if you use +# any Qt feature that has been marked deprecated (the exact warnings +# depend on your compiler). Refer to the documentation for the +# deprecated API to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if it uses deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +SOURCES += \ + main.cpp + +RESOURCES += qml.qrc + +# Additional import path used to resolve QML modules in Qt Creator's code model +QML_IMPORT_PATH = + +# Additional import path used to resolve QML modules just for Qt Quick Designer +QML_DESIGNER_IMPORT_PATH = + +# Default rules for deployment. +target.path = /usr/bin +timeqml.files += data/time/time.qml +timeqml.path = /usr/share/appwidget/qml/ +timecong.files += data/time/time.conf +timecong.path = /usr/share/appwidget/config/ +timepreview.files += data/time/time.png +timepreview.path = /usr/share/appwidgetdemo/clock/ + +INSTALLS += target timeqml timepreview timecong