diff --git a/example/T_RatingControl.qml b/example/T_RatingControl.qml new file mode 100644 index 0000000..6e75b0a --- /dev/null +++ b/example/T_RatingControl.qml @@ -0,0 +1,43 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Window +import QtQuick.Controls +import FluentUI +import "./component" + +FluScrollablePage{ + + title:"RatingControl" + leftPadding:10 + rightPadding:10 + bottomPadding:20 + spacing: 0 + + FluArea{ + Layout.fillWidth: true + height: 100 + paddings: 10 + Layout.topMargin: 20 + + Column{ + spacing: 10 + anchors.verticalCenter: parent.verticalCenter + FluRatingControl{ + + } + FluRatingControl{ + number:10 + } + } + + } + + CodeExpander{ + Layout.fillWidth: true + code:'FluRatingControl{ + +}' + } + + +} diff --git a/example/component/CodeExpander.qml b/example/component/CodeExpander.qml index 14cb7de..770e810 100644 --- a/example/component/CodeExpander.qml +++ b/example/component/CodeExpander.qml @@ -118,7 +118,8 @@ FluExpander{ "FluTableView", "FluColors", "FluTheme", - "FluStatusView" + "FluStatusView", + "FluRatingControl" ]; code = code.replace(/\n/g, "
"); code = code.replace(/ /g, " "); diff --git a/example/global/ItemsOriginal.qml b/example/global/ItemsOriginal.qml index 0d8f6c5..d0ed554 100644 --- a/example/global/ItemsOriginal.qml +++ b/example/global/ItemsOriginal.qml @@ -113,6 +113,12 @@ FluObject{ navigationView.push("qrc:/T_Progress.qml") } } + FluPaneItem{ + title:"RatingControl" + onTap:{ + navigationView.push("qrc:/T_RatingControl.qml") + } + } FluPaneItem{ title:"Badge" onTap:{ diff --git a/example/qml.qrc b/example/qml.qrc index 8aa329d..00b00a8 100644 --- a/example/qml.qrc +++ b/example/qml.qrc @@ -165,5 +165,6 @@ page/StandardWindow.qml page/SingleTaskWindow.qml page/SingleInstanceWindow.qml + T_RatingControl.qml diff --git a/src/Fluent.cpp b/src/Fluent.cpp index f31d56f..fa42410 100644 --- a/src/Fluent.cpp +++ b/src/Fluent.cpp @@ -34,6 +34,7 @@ void Fluent::registerTypes(const char *uri){ qmlRegisterType(uri,major,minor,"WindowHelper"); qmlRegisterType(uri,major,minor,"FluColorSet"); + qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluRatingControl.qml"),uri,major,minor,"FluRatingControl"); qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluStatusView.qml"),uri,major,minor,"FluStatusView"); qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluPagination.qml"),uri,major,minor,"FluPagination"); qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluToggleButton.qml"),uri,major,minor,"FluToggleButton"); diff --git a/src/controls/FluRatingControl.qml b/src/controls/FluRatingControl.qml new file mode 100644 index 0000000..f27f698 --- /dev/null +++ b/src/controls/FluRatingControl.qml @@ -0,0 +1,60 @@ +import QtQuick +import QtQuick.Controls +import FluentUI + +Item { + + property int number: 5 + property int spacing: 4 + property int size: 18 + property int value:0 + + id:control + implicitWidth: container.width + implicitHeight: container.height + + QtObject{ + id:d + property int mouseValue: 0 + property int itemSize: control.size+spacing*2 + } + + Row{ + id:container + spacing: 0 + Repeater{ + model:control.number + Item{ + width: d.itemSize + height: d.itemSize + FluIcon{ + property bool isSelected : { + if(d.mouseValue!==0){ + return index{ + d.mouseValue = Number(mouse.x / d.itemSize)+1 + } + onExited: { + d.mouseValue = 0 + } + onClicked: (mouse)=>{ + control.value = Number(mouse.x / d.itemSize)+1 + } + } + +} diff --git a/src/controls/FluTextArea.qml b/src/controls/FluTextArea.qml index bcadff0..22a5fe9 100644 --- a/src/controls/FluTextArea.qml +++ b/src/controls/FluTextArea.qml @@ -1,4 +1,5 @@ import QtQuick +import QtQuick.Controls import QtQuick.Controls.impl import QtQuick.Templates as T diff --git a/src/controls/FluTextFiled.qml b/src/controls/FluTextFiled.qml index 3d6d5c1..f81d484 100644 --- a/src/controls/FluTextFiled.qml +++ b/src/controls/FluTextFiled.qml @@ -1,4 +1,5 @@ import QtQuick +import QtQuick.Controls import QtQuick.Controls.impl import QtQuick.Templates as T @@ -26,7 +27,6 @@ T.TextField { y: control.topPadding width: control.width - (control.leftPadding + control.rightPadding) height: control.height - (control.topPadding + control.bottomPadding) - text: control.placeholderText font: control.font color: control.placeholderTextColor diff --git a/src/res.qrc b/src/res.qrc index 11d3eb0..d4408cf 100644 --- a/src/res.qrc +++ b/src/res.qrc @@ -72,5 +72,6 @@ controls/FluToggleButton.qml controls/FluStatusView.qml controls/FluPaneItemEmpty.qml + controls/FluRatingControl.qml