This commit is contained in:
朱子楚\zhuzi 2024-05-04 23:56:20 +08:00
parent 18685b17ec
commit af270951da
5 changed files with 259 additions and 44 deletions

View File

@ -1700,22 +1700,30 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
</message> </message>
<message> <message>
<location filename="qml/page/T_RadioButton.qml" line="38"/> <location filename="qml/page/T_RadioButton.qml" line="38"/>
<location filename="qml/page/T_RadioButton.qml" line="80"/> <location filename="qml/page/T_RadioButton.qml" line="81"/>
<location filename="qml/page/T_RadioButton.qml" line="134"/>
<location filename="qml/page/T_RadioButton.qml" line="187"/>
<source>Disabled</source> <source>Disabled</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_RadioButton.qml" line="63"/> <location filename="qml/page/T_RadioButton.qml" line="64"/>
<location filename="qml/page/T_RadioButton.qml" line="117"/>
<location filename="qml/page/T_RadioButton.qml" line="170"/>
<source>Radio Button_1</source> <source>Radio Button_1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_RadioButton.qml" line="67"/> <location filename="qml/page/T_RadioButton.qml" line="68"/>
<location filename="qml/page/T_RadioButton.qml" line="121"/>
<location filename="qml/page/T_RadioButton.qml" line="174"/>
<source>Radio Button_2</source> <source>Radio Button_2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_RadioButton.qml" line="71"/> <location filename="qml/page/T_RadioButton.qml" line="72"/>
<location filename="qml/page/T_RadioButton.qml" line="125"/>
<location filename="qml/page/T_RadioButton.qml" line="178"/>
<source>Radio Button_3</source> <source>Radio Button_3</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -1808,22 +1808,30 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
</message> </message>
<message> <message>
<location filename="qml/page/T_RadioButton.qml" line="38"/> <location filename="qml/page/T_RadioButton.qml" line="38"/>
<location filename="qml/page/T_RadioButton.qml" line="80"/> <location filename="qml/page/T_RadioButton.qml" line="81"/>
<location filename="qml/page/T_RadioButton.qml" line="134"/>
<location filename="qml/page/T_RadioButton.qml" line="187"/>
<source>Disabled</source> <source>Disabled</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_RadioButton.qml" line="63"/> <location filename="qml/page/T_RadioButton.qml" line="64"/>
<location filename="qml/page/T_RadioButton.qml" line="117"/>
<location filename="qml/page/T_RadioButton.qml" line="170"/>
<source>Radio Button_1</source> <source>Radio Button_1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_RadioButton.qml" line="67"/> <location filename="qml/page/T_RadioButton.qml" line="68"/>
<location filename="qml/page/T_RadioButton.qml" line="121"/>
<location filename="qml/page/T_RadioButton.qml" line="174"/>
<source>Radio Button_2</source> <source>Radio Button_2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_RadioButton.qml" line="71"/> <location filename="qml/page/T_RadioButton.qml" line="72"/>
<location filename="qml/page/T_RadioButton.qml" line="125"/>
<location filename="qml/page/T_RadioButton.qml" line="178"/>
<source>Radio Button_3</source> <source>Radio Button_3</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -58,6 +58,7 @@ FluScrollablePage{
verticalCenter: parent.verticalCenter verticalCenter: parent.verticalCenter
left: parent.left left: parent.left
} }
currentIndex: 1
FluRadioButton{ FluRadioButton{
disabled: radio_button_switch2.checked disabled: radio_button_switch2.checked
text: qsTr("Radio Button_1") text: qsTr("Radio Button_1")
@ -97,4 +98,110 @@ FluScrollablePage{
}' }'
} }
FluFrame{
Layout.fillWidth: true
Layout.preferredHeight: 60
padding: 10
Layout.topMargin: 20
FluRadioButtons{
spacing: 8
anchors.verticalCenter: parent.verticalCenter
anchors{
verticalCenter: parent.verticalCenter
left: parent.left
}
orientation: Qt.Horizontal
currentIndex: 1
FluRadioButton{
disabled: radio_button_switch3.checked
text: qsTr("Radio Button_1")
}
FluRadioButton{
disabled: radio_button_switch3.checked
text: qsTr("Radio Button_2")
}
FluRadioButton{
disabled: radio_button_switch3.checked
text: qsTr("Radio Button_3")
}
}
FluToggleSwitch{
id: radio_button_switch3
anchors{
right: parent.right
verticalCenter: parent.verticalCenter
}
text: qsTr("Disabled")
}
}
CodeExpander{
Layout.fillWidth: true
Layout.topMargin: -6
code:'FluRadioButtons{
spacing: 8
orientation: Qt.Horizontal
FluRadioButton{
text:"Radio Button_1"
}
FluRadioButton{
text:"Radio Button_2"
}
FluRadioButton{
text:"Radio Button_3"
}
}'
}
FluFrame{
Layout.fillWidth: true
Layout.preferredHeight: 100
padding: 10
Layout.topMargin: 20
FluRadioButtons{
spacing: 8
anchors.verticalCenter: parent.verticalCenter
anchors{
verticalCenter: parent.verticalCenter
left: parent.left
}
currentIndex: 1
FluCheckBox{
disabled: radio_button_switch4.checked
text: qsTr("Radio Button_1")
}
FluCheckBox{
disabled: radio_button_switch4.checked
text: qsTr("Radio Button_2")
}
FluCheckBox{
disabled: radio_button_switch4.checked
text: qsTr("Radio Button_3")
}
}
FluToggleSwitch{
id: radio_button_switch4
anchors{
right: parent.right
verticalCenter: parent.verticalCenter
}
text: qsTr("Disabled")
}
}
CodeExpander{
Layout.fillWidth: true
Layout.topMargin: -6
code:'FluRadioButtons{
spacing: 8
FluCheckBox{
text:"Radio Button_1"
}
FluCheckBox{
text:"Radio Button_2"
}
FluCheckBox{
text:"Radio Button_3"
}
}'
}
} }

View File

@ -3,30 +3,76 @@ import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import FluentUI 1.0 import FluentUI 1.0
ColumnLayout { Item{
default property alias buttons: control.data
property int currentIndex : -1
id:control id:control
onCurrentIndexChanged: { default property list<QtObject> buttons
property int currentIndex : -1
property int spacing: 8
property int orientation: Qt.Vertical
QtObject{
id: d
function updateChecked(){
if(buttons.length === 0){
return
}
for(var i = 0;i<buttons.length;i++){ for(var i = 0;i<buttons.length;i++){
buttons[i].checked = false buttons[i].checked = false
} }
var button = buttons[currentIndex] buttons[currentIndex].checked = true
if(button){
button.checked = true
} }
} }
implicitWidth: childrenRect.width
implicitHeight: childrenRect.height
onCurrentIndexChanged: {
d.updateChecked()
}
Component{
id:com_vertical
ColumnLayout {
data: control.buttons
spacing: control.spacing
Component.onCompleted: { Component.onCompleted: {
for(var i = 0;i<buttons.length;i++){ for(var i = 0;i<control.buttons.length;i++){
buttons[i].clickListener = function(){ control.buttons[i].clickListener = function(){
for(var i = 0;i<buttons.length;i++){ for(var i = 0;i<control.buttons.length;i++){
var button = buttons[i] var button = control.buttons[i]
if(this === button){ if(this === button){
currentIndex = i control.currentIndex = i
} }
} }
} }
} }
currentIndex = 0 if(control.currentIndex < 0){
control.currentIndex = 0
}
d.updateChecked()
}
}
}
Component{
id:com_horizontal
RowLayout {
data: buttons
spacing: control.spacing
Component.onCompleted: {
for(var i = 0;i<control.buttons.length;i++){
control.buttons[i].clickListener = function(){
for(var i = 0;i<control.buttons.length;i++){
var button = control.buttons[i]
if(this === button){
control.currentIndex = i
}
}
}
}
if(control.currentIndex < 0){
control.currentIndex = 0
}
d.updateChecked()
}
}
}
FluLoader{
sourceComponent: control.orientation === Qt.Vertical ? com_vertical : com_horizontal
} }
} }

View File

@ -4,30 +4,76 @@ import QtQuick.Controls.Basic
import QtQuick.Layouts import QtQuick.Layouts
import FluentUI import FluentUI
ColumnLayout { Item{
default property alias buttons: control.data
property int currentIndex : -1
id:control id:control
onCurrentIndexChanged: { default property list<QtObject> buttons
property int currentIndex : -1
property int spacing: 8
property int orientation: Qt.Vertical
QtObject{
id: d
function updateChecked(){
if(buttons.length === 0){
return
}
for(var i = 0;i<buttons.length;i++){ for(var i = 0;i<buttons.length;i++){
buttons[i].checked = false buttons[i].checked = false
} }
var button = buttons[currentIndex] buttons[currentIndex].checked = true
if(button){
button.checked = true
} }
} }
implicitWidth: childrenRect.width
implicitHeight: childrenRect.height
onCurrentIndexChanged: {
d.updateChecked()
}
Component{
id:com_vertical
ColumnLayout {
data: control.buttons
spacing: control.spacing
Component.onCompleted: { Component.onCompleted: {
for(var i = 0;i<buttons.length;i++){ for(var i = 0;i<control.buttons.length;i++){
buttons[i].clickListener = function(){ control.buttons[i].clickListener = function(){
for(var i = 0;i<buttons.length;i++){ for(var i = 0;i<control.buttons.length;i++){
var button = buttons[i] var button = control.buttons[i]
if(this === button){ if(this === button){
currentIndex = i control.currentIndex = i
} }
} }
} }
} }
currentIndex = 0 if(control.currentIndex < 0){
control.currentIndex = 0
}
d.updateChecked()
}
}
}
Component{
id:com_horizontal
RowLayout {
data: buttons
spacing: control.spacing
Component.onCompleted: {
for(var i = 0;i<control.buttons.length;i++){
control.buttons[i].clickListener = function(){
for(var i = 0;i<control.buttons.length;i++){
var button = control.buttons[i]
if(this === button){
control.currentIndex = i
}
}
}
}
if(control.currentIndex < 0){
control.currentIndex = 0
}
d.updateChecked()
}
}
}
FluLoader{
sourceComponent: control.orientation === Qt.Vertical ? com_vertical : com_horizontal
} }
} }