Compare commits
4 Commits
031fb35cce
...
a43637f75e
Author | SHA1 | Date |
---|---|---|
|
a43637f75e | |
|
86c8d54eea | |
|
97b9a789b0 | |
|
7c0c4cc451 |
|
@ -31,4 +31,4 @@ BEGIN
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
IDI_ICON1 ICON DISCARDABLE "${FLUENTUI_DIRECTORY}/example/favicon.ico"
|
IDI_ICON1 ICON DISCARDABLE "${CMAKE_SOURCE_DIR}/example/favicon.ico"
|
||||||
|
|
|
@ -40,4 +40,6 @@ cmake-build-*
|
||||||
example/Version.h
|
example/Version.h
|
||||||
|
|
||||||
action-cli
|
action-cli
|
||||||
dist
|
dist
|
||||||
|
|
||||||
|
*.qm
|
|
@ -8,8 +8,7 @@ if(MSVC)
|
||||||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
|
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(FLUENTUI_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/.cmake/)
|
||||||
list(APPEND CMAKE_MODULE_PATH ${FLUENTUI_DIRECTORY}/.cmake/)
|
|
||||||
|
|
||||||
include(GetGitRevisionDescription)
|
include(GetGitRevisionDescription)
|
||||||
|
|
||||||
|
|
|
@ -6,9 +6,6 @@ project(example VERSION 1.0 LANGUAGES CXX)
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
#导入exmaple的QML位置,不然import example有时候会爆红
|
|
||||||
set(QML_IMPORT_PATH ${CMAKE_BINARY_DIR}/example CACHE STRING "Qt Creator extra QML import paths" FORCE)
|
|
||||||
|
|
||||||
#判断FluentUI库类型
|
#判断FluentUI库类型
|
||||||
if(FLUENTUI_BUILD_STATIC_LIB)
|
if(FLUENTUI_BUILD_STATIC_LIB)
|
||||||
add_definitions(-DFLUENTUI_BUILD_STATIC_LIB)
|
add_definitions(-DFLUENTUI_BUILD_STATIC_LIB)
|
||||||
|
@ -16,9 +13,9 @@ endif()
|
||||||
|
|
||||||
#设置可执行文件输出目录
|
#设置可执行文件输出目录
|
||||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY $<1:${FLUENTUI_DIRECTORY}/bin/debug>)
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/debug)
|
||||||
else()
|
else()
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY $<1:${FLUENTUI_DIRECTORY}/bin/release>)
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/release)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#导入Qt相关依赖包
|
#导入Qt相关依赖包
|
||||||
|
@ -33,10 +30,25 @@ else()
|
||||||
set(CMAKE_AUTOUIC ON)
|
set(CMAKE_AUTOUIC ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
#国际化
|
||||||
|
find_program(QT_LUPDATE NAMES lupdate)
|
||||||
|
find_program(QT_LRELEASE NAMES lrelease)
|
||||||
|
if (NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/example_en.qm)
|
||||||
|
execute_process(COMMAND ${QT_LUPDATE} ${CMAKE_CURRENT_LIST_DIR} -ts example_en.ts WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
execute_process(COMMAND ${QT_LRELEASE} example_en.ts WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
endif ()
|
||||||
|
if (NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/example_zh.qm)
|
||||||
|
execute_process(COMMAND ${QT_LUPDATE} ${CMAKE_CURRENT_LIST_DIR} -ts example_zh.ts WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
execute_process(COMMAND ${QT_LRELEASE} example_zh.ts WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
file(GLOB QM_FILE_PATHS ${CMAKE_CURRENT_LIST_DIR}/ *.qm)
|
||||||
|
file(COPY ${QM_FILE_PATHS} DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/i18n)
|
||||||
|
|
||||||
##生成版本信息头文件
|
##生成版本信息头文件
|
||||||
set(HEADER_FILE_VERSION_PATH ${FLUENTUI_DIRECTORY}/example/Version.h)
|
set(HEADER_FILE_VERSION_PATH ${CMAKE_SOURCE_DIR}/example/Version.h)
|
||||||
configure_file(
|
configure_file(
|
||||||
${FLUENTUI_DIRECTORY}/.cmake/Version.h.in
|
${CMAKE_SOURCE_DIR}/.cmake/Version.h.in
|
||||||
${HEADER_FILE_VERSION_PATH}
|
${HEADER_FILE_VERSION_PATH}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -73,20 +85,19 @@ if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
|
||||||
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath})
|
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath})
|
||||||
list(APPEND resource_files ${filename})
|
list(APPEND resource_files ${filename})
|
||||||
endforeach(filepath)
|
endforeach(filepath)
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#如果是Windows平台,则生成rc文件,还有inno setup脚本文件
|
#如果是Windows平台,则生成rc文件,还有inno setup脚本文件
|
||||||
set(EXAMPLE_VERSION_RC_PATH "")
|
set(EXAMPLE_VERSION_RC_PATH "")
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(EXAMPLE_VERSION_RC_PATH ${CMAKE_BINARY_DIR}/version_${PROJECT_NAME}.rc)
|
set(EXAMPLE_VERSION_RC_PATH ${CMAKE_CURRENT_BINARY_DIR}/version_${PROJECT_NAME}.rc)
|
||||||
configure_file(
|
configure_file(
|
||||||
${FLUENTUI_DIRECTORY}/.cmake/version_exe.rc.in
|
${CMAKE_SOURCE_DIR}/.cmake/version_exe.rc.in
|
||||||
${EXAMPLE_VERSION_RC_PATH}
|
${EXAMPLE_VERSION_RC_PATH}
|
||||||
)
|
)
|
||||||
configure_file(
|
configure_file(
|
||||||
${FLUENTUI_DIRECTORY}/.cmake/InstallerScript.iss.in
|
${CMAKE_SOURCE_DIR}/.cmake/InstallerScript.iss.in
|
||||||
${FLUENTUI_DIRECTORY}/action-cli/InstallerScript.iss
|
${CMAKE_SOURCE_DIR}/action-cli/InstallerScript.iss
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -120,6 +131,9 @@ if(WIN32)
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
file(MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/source/)
|
||||||
|
file(COPY ${CMAKE_SOURCE_DIR}/src/ DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/source/)
|
||||||
|
|
||||||
if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
|
if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
|
||||||
#如果是Qt6.2以上,则使用qt_add_qml_module添加资源文件
|
#如果是Qt6.2以上,则使用qt_add_qml_module添加资源文件
|
||||||
qt_add_qml_module(example
|
qt_add_qml_module(example
|
||||||
|
|
|
@ -185,7 +185,6 @@
|
||||||
<file>qml/viewmodel/TextBoxViewModel.qml</file>
|
<file>qml/viewmodel/TextBoxViewModel.qml</file>
|
||||||
<file>qml/page/T_Clip.qml</file>
|
<file>qml/page/T_Clip.qml</file>
|
||||||
<file>qml/page/T_3D.qml</file>
|
<file>qml/page/T_3D.qml</file>
|
||||||
<file>qml/global/Lang.qml</file>
|
|
||||||
<file>qml/page/T_Network.qml</file>
|
<file>qml/page/T_Network.qml</file>
|
||||||
<file>qml/page/T_ShortcutPicker.qml</file>
|
<file>qml/page/T_ShortcutPicker.qml</file>
|
||||||
<file>qml/chart/T_BarChart.qml</file>
|
<file>qml/chart/T_BarChart.qml</file>
|
||||||
|
@ -198,5 +197,6 @@
|
||||||
<file>res/image/ic_crash.png</file>
|
<file>res/image/ic_crash.png</file>
|
||||||
<file>qml/window/CrashWindow.qml</file>
|
<file>qml/window/CrashWindow.qml</file>
|
||||||
<file>qml/page/T_SplitLayout.qml</file>
|
<file>qml/page/T_SplitLayout.qml</file>
|
||||||
|
<file>qml/window/FluentInitalizrWindow.qml</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -21,6 +21,13 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Connections{
|
||||||
|
target: TranslateHelper
|
||||||
|
function onCurrentChanged(){
|
||||||
|
SettingsHelper.saveLanguage(TranslateHelper.current)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
FluNetwork.openLog = false
|
FluNetwork.openLog = false
|
||||||
FluNetwork.setInterceptor(function(param){
|
FluNetwork.setInterceptor(function(param){
|
||||||
|
@ -37,6 +44,7 @@ Item {
|
||||||
"/login":"qrc:/example/qml/window/LoginWindow.qml",
|
"/login":"qrc:/example/qml/window/LoginWindow.qml",
|
||||||
"/hotload":"qrc:/example/qml/window/HotloadWindow.qml",
|
"/hotload":"qrc:/example/qml/window/HotloadWindow.qml",
|
||||||
"/crash":"qrc:/example/qml/window/CrashWindow.qml",
|
"/crash":"qrc:/example/qml/window/CrashWindow.qml",
|
||||||
|
"/fluentInitalizr":"qrc:/example/qml/window/FluentInitalizrWindow.qml",
|
||||||
"/singleTaskWindow":"qrc:/example/qml/window/SingleTaskWindow.qml",
|
"/singleTaskWindow":"qrc:/example/qml/window/SingleTaskWindow.qml",
|
||||||
"/standardWindow":"qrc:/example/qml/window/StandardWindow.qml",
|
"/standardWindow":"qrc:/example/qml/window/StandardWindow.qml",
|
||||||
"/singleInstanceWindow":"qrc:/example/qml/window/SingleInstanceWindow.qml",
|
"/singleInstanceWindow":"qrc:/example/qml/window/SingleInstanceWindow.qml",
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Bar Chart"
|
title: qsTr("Bar Chart")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
width: 500
|
width: 500
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Bubble Chart"
|
title: qsTr("Bubble Chart")
|
||||||
|
|
||||||
function randomScalingFactor() {
|
function randomScalingFactor() {
|
||||||
return Math.random().toFixed(1);
|
return Math.random().toFixed(1);
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Line Chart"
|
title: qsTr("Line Chart")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
width: 500
|
width: 500
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Doughnut and Pie Chart"
|
title: qsTr("Pie Chart")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
width: 500
|
width: 500
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"PolarArea Chart"
|
title: qsTr("Polar Area Chart")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
width: 500
|
width: 500
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Radar Chart"
|
title: qsTr("Radar Chart")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
width: 500
|
width: 500
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Scatter Chart"
|
title: qsTr("Scatter Chart")
|
||||||
|
|
||||||
function randomScalingFactor() {
|
function randomScalingFactor() {
|
||||||
return Math.random().toFixed(1);
|
return Math.random().toFixed(1);
|
||||||
|
|
|
@ -8,7 +8,7 @@ FluExpander{
|
||||||
|
|
||||||
id:control
|
id:control
|
||||||
property string code: ""
|
property string code: ""
|
||||||
headerText: "Source"
|
headerText: qsTr("Source")
|
||||||
contentHeight:content.height
|
contentHeight:content.height
|
||||||
focus: false
|
focus: false
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ FluExpander{
|
||||||
}
|
}
|
||||||
onClicked:{
|
onClicked:{
|
||||||
FluTools.clipText(FluTools.html2PlantText(content.text))
|
FluTools.clipText(FluTools.html2PlantText(content.text))
|
||||||
showSuccess("复制成功")
|
showSuccess(qsTr("The Copy is Successful"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,7 +49,6 @@ FluExpander{
|
||||||
}
|
}
|
||||||
|
|
||||||
function highlightQmlCode(code) {
|
function highlightQmlCode(code) {
|
||||||
// 定义 QML 关键字列表
|
|
||||||
var qmlKeywords = [
|
var qmlKeywords = [
|
||||||
"FluTextButton",
|
"FluTextButton",
|
||||||
"FluAppBar",
|
"FluAppBar",
|
||||||
|
|
|
@ -13,7 +13,7 @@ FluObject{
|
||||||
FluPaneItemSeparator{}
|
FluPaneItemSeparator{}
|
||||||
|
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.about
|
title:qsTr("About")
|
||||||
icon:FluentIcons.Contact
|
icon:FluentIcons.Contact
|
||||||
onTapListener:function(){
|
onTapListener:function(){
|
||||||
FluApp.navigate("/about")
|
FluApp.navigate("/about")
|
||||||
|
@ -21,7 +21,7 @@ FluObject{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.settings
|
title:qsTr("Settings")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
icon:FluentIcons.Settings
|
icon:FluentIcons.Settings
|
||||||
url:"qrc:/example/qml/page/T_Settings.qml"
|
url:"qrc:/example/qml/page/T_Settings.qml"
|
||||||
|
|
|
@ -17,14 +17,14 @@ FluObject{
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
id:item_home
|
id:item_home
|
||||||
count: 9
|
count: 9
|
||||||
title:Lang.home
|
title: qsTr("Home")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
infoBadge:FluBadge{
|
infoBadge: FluBadge{
|
||||||
count: item_home.count
|
count: item_home.count
|
||||||
}
|
}
|
||||||
icon:FluentIcons.Home
|
icon: FluentIcons.Home
|
||||||
url:"qrc:/example/qml/page/T_Home.qml"
|
url: "qrc:/example/qml/page/T_Home.qml"
|
||||||
onTap:{
|
onTap: {
|
||||||
if(navigationView.getCurrentUrl()){
|
if(navigationView.getCurrentUrl()){
|
||||||
item_home.count = 0
|
item_home.count = 0
|
||||||
}
|
}
|
||||||
|
@ -33,376 +33,376 @@ FluObject{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:"PaneItemExpander Disabled"
|
title: qsTr("PaneItemExpander Disabled")
|
||||||
iconVisible: false
|
iconVisible: false
|
||||||
disabled: true
|
disabled: true
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
id:item_expander_basic_input
|
id: item_expander_basic_input
|
||||||
title:Lang.basic_input
|
title: qsTr("Basic Input")
|
||||||
icon:FluentIcons.CheckboxComposite
|
icon: FluentIcons.CheckboxComposite
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
id:item_buttons
|
id: item_buttons
|
||||||
count: 99
|
count: 99
|
||||||
infoBadge:FluBadge{
|
infoBadge: FluBadge{
|
||||||
count: item_buttons.count
|
count: item_buttons.count
|
||||||
}
|
}
|
||||||
title:"Buttons"
|
title: qsTr("Buttons")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/Button.png",recentlyUpdated:true,desc:"A control that responds to user input and raisesa Click event."})
|
extra: ({image:"qrc:/example/res/image/control/Button.png",recentlyUpdated:true,desc:qsTr("A control that responds to user input and raisesa Click event.")})
|
||||||
url:"qrc:/example/qml/page/T_Buttons.qml"
|
url: "qrc:/example/qml/page/T_Buttons.qml"
|
||||||
onTap:{
|
onTap: {
|
||||||
item_buttons.count = 0
|
item_buttons.count = 0
|
||||||
navigationView.push(url)
|
navigationView.push(url)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
id:item_text
|
id: item_text
|
||||||
title:"Text"
|
title: qsTr("Text")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
count: 5
|
count: 5
|
||||||
infoBadge:FluBadge{
|
infoBadge: FluBadge{
|
||||||
count: item_text.count
|
count: item_text.count
|
||||||
color: Qt.rgba(82/255,196/255,26/255,1)
|
color: Qt.rgba(82/255,196/255,26/255,1)
|
||||||
}
|
}
|
||||||
url:"qrc:/example/qml/page/T_Text.qml"
|
url: "qrc:/example/qml/page/T_Text.qml"
|
||||||
onTap:{
|
onTap: {
|
||||||
item_text.count = 0
|
item_text.count = 0
|
||||||
navigationView.push(url)
|
navigationView.push(url)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Image"
|
title: qsTr("Image")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Image.qml"
|
url: "qrc:/example/qml/page/T_Image.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Slider"
|
title: qsTr("Slider")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/Slider.png",recentlyUpdated:true,desc:"A control that lets the user select from a rangeof values by moving a Thumb control along atrack."})
|
extra: ({image:"qrc:/example/res/image/control/Slider.png",recentlyUpdated:true,desc:qsTr("A control that lets the user select from a rangeof values by moving a Thumb control along atrack.")})
|
||||||
url:"qrc:/example/qml/page/T_Slider.qml"
|
url: "qrc:/example/qml/page/T_Slider.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"CheckBox"
|
title: qsTr("CheckBox")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/Checkbox.png",recentlyUpdated:true,desc:"A control that a user can select or clear."})
|
extra: ({image:"qrc:/example/res/image/control/Checkbox.png",recentlyUpdated:true,desc:qsTr("A control that a user can select or clear.")})
|
||||||
url:"qrc:/example/qml/page/T_CheckBox.qml"
|
url: "qrc:/example/qml/page/T_CheckBox.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"RadioButton"
|
title: qsTr("RadioButton")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_RadioButton.qml"
|
url: "qrc:/example/qml/page/T_RadioButton.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"ToggleSwitch"
|
title: qsTr("ToggleSwitch")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_ToggleSwitch.qml"
|
url: "qrc:/example/qml/page/T_ToggleSwitch.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"PaneItem Disabled"
|
title: qsTr("PaneItem Disabled")
|
||||||
disabled: true
|
disabled: true
|
||||||
icon: FluentIcons.Error
|
icon: FluentIcons.Error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:Lang.form
|
title: qsTr("Form")
|
||||||
icon:FluentIcons.GridView
|
icon: FluentIcons.GridView
|
||||||
FluPaneItem{
|
FluPaneItem {
|
||||||
title:"TextBox"
|
title: qsTr("TextBox")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_TextBox.qml"
|
url: "qrc:/example/qml/page/T_TextBox.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"TimePicker"
|
title: qsTr("TimePicker")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_TimePicker.qml"
|
url: "qrc:/example/qml/page/T_TimePicker.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"DatePicker"
|
title: qsTr("DatePicker")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_DatePicker.qml"
|
url: "qrc:/example/qml/page/T_DatePicker.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"CalendarPicker"
|
title: qsTr("CalendarPicker")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_CalendarPicker.qml"
|
url: "qrc:/example/qml/page/T_CalendarPicker.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"ColorPicker"
|
title: qsTr("ColorPicker")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_ColorPicker.qml"
|
url: "qrc:/example/qml/page/T_ColorPicker.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"ShortcutPicker"
|
title: qsTr("ShortcutPicker")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_ShortcutPicker.qml"
|
url: "qrc:/example/qml/page/T_ShortcutPicker.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:Lang.surface
|
title: qsTr("Surface")
|
||||||
icon:FluentIcons.SurfaceHub
|
icon: FluentIcons.SurfaceHub
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"InfoBar"
|
title: qsTr("InfoBar")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/InfoBar.png",recentlyUpdated:true,desc:"An inline message to display app-wide statuschange information."})
|
extra: ({image:"qrc:/example/res/image/control/InfoBar.png",recentlyUpdated:true,desc:qsTr("An inline message to display app-wide statuschange information.")})
|
||||||
url:"qrc:/example/qml/page/T_InfoBar.qml"
|
url: "qrc:/example/qml/page/T_InfoBar.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Progress"
|
title: qsTr("Progress")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Progress.qml"
|
url: "qrc:/example/qml/page/T_Progress.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"RatingControl"
|
title: qsTr("RatingControl")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_RatingControl.qml"
|
url: "qrc:/example/qml/page/T_RatingControl.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Badge"
|
title: qsTr("Badge")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Badge.qml"
|
url: "qrc:/example/qml/page/T_Badge.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Rectangle"
|
title: qsTr("Rectangle")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Rectangle.qml"
|
url: "qrc:/example/qml/page/T_Rectangle.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Clip"
|
title: qsTr("Clip")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Clip.qml"
|
url: "qrc:/example/qml/page/T_Clip.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Carousel"
|
title: qsTr("Carousel")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Carousel.qml"
|
url: "qrc:/example/qml/page/T_Carousel.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Expander"
|
title: qsTr("Expander")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Expander.qml"
|
url: "qrc:/example/qml/page/T_Expander.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Watermark"
|
title: qsTr("Watermark")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Watermark.qml"
|
url: "qrc:/example/qml/page/T_Watermark.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:Lang.layout
|
title: qsTr("Layout")
|
||||||
icon:FluentIcons.DockLeft
|
icon: FluentIcons.DockLeft
|
||||||
FluPaneItem{
|
FluPaneItem {
|
||||||
title:"StaggeredLayout"
|
title: qsTr("StaggeredLayout")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_StaggeredLayout.qml"
|
url: "qrc:/example/qml/page/T_StaggeredLayout.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"SplitLayout"
|
title: qsTr("SplitLayout")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_SplitLayout.qml"
|
url: "qrc:/example/qml/page/T_SplitLayout.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"StatusLayout"
|
title: qsTr("StatusLayout")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_StatusLayout.qml"
|
url: "qrc:/example/qml/page/T_StatusLayout.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:Lang.popus
|
title: qsTr("Popus")
|
||||||
icon:FluentIcons.ButtonMenu
|
icon: FluentIcons.ButtonMenu
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Dialog"
|
title: qsTr("Dialog")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Dialog.qml"
|
url: "qrc:/example/qml/page/T_Dialog.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
id:item_combobox
|
id: item_combobox
|
||||||
title:"ComboBox"
|
title: qsTr("ComboBox")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
count: 9
|
count: 9
|
||||||
infoBadge:FluBadge{
|
infoBadge:FluBadge{
|
||||||
count: item_combobox.count
|
count: item_combobox.count
|
||||||
color: Qt.rgba(250/255,173/255,20/255,1)
|
color: Qt.rgba(250/255,173/255,20/255,1)
|
||||||
}
|
}
|
||||||
url:"qrc:/example/qml/page/T_ComboBox.qml"
|
url: "qrc:/example/qml/page/T_ComboBox.qml"
|
||||||
onTap:{
|
onTap: {
|
||||||
item_combobox.count = 0
|
item_combobox.count = 0
|
||||||
navigationView.push("qrc:/example/qml/page/T_ComboBox.qml")
|
navigationView.push("qrc:/example/qml/page/T_ComboBox.qml")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Tooltip"
|
title: qsTr("Tooltip")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Tooltip.qml"
|
url: "qrc:/example/qml/page/T_Tooltip.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Menu"
|
title: qsTr("Menu")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Menu.qml"
|
url: "qrc:/example/qml/page/T_Menu.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:Lang.navigation
|
title: qsTr("Navigation")
|
||||||
icon:FluentIcons.AllApps
|
icon: FluentIcons.AllApps
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Pivot"
|
title: qsTr("Pivot")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/Pivot.png",order:3,recentlyAdded:true,desc:"Presents information from different sources in atabbed view."})
|
extra: ({image:"qrc:/example/res/image/control/Pivot.png",order:3,recentlyAdded:true,desc:qsTr("Presents information from different sources in a tabbed view.")})
|
||||||
url:"qrc:/example/qml/page/T_Pivot.qml"
|
url: "qrc:/example/qml/page/T_Pivot.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"BreadcrumbBar"
|
title: qsTr("BreadcrumbBar")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_BreadcrumbBar.qml"
|
url: "qrc:/example/qml/page/T_BreadcrumbBar.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"TabView"
|
title: qsTr("TabView")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/TabView.png",order:1,recentlyAdded:true,desc:"A control that displays a collection of tabs thatcan be used to display several documents."})
|
extra: ({image:"qrc:/example/res/image/control/TabView.png",order:1,recentlyAdded:true,desc:qsTr("A control that displays a collection of tabs thatcan be used to display several documents.")})
|
||||||
url:"qrc:/example/qml/page/T_TabView.qml"
|
url: "qrc:/example/qml/page/T_TabView.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"TreeView"
|
title: qsTr("TreeView")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_TreeView.qml"
|
url: "qrc:/example/qml/page/T_TreeView.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"TableView"
|
title: qsTr("TableView")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/DataGrid.png",order:4,recentlyAdded:true,desc:"The TableView control provides a flexible way to display a collection of data in rows and columns"})
|
extra: ({image:"qrc:/example/res/image/control/DataGrid.png",order:4,recentlyAdded:true,desc:qsTr("The TableView control provides a flexible way to display a collection of data in rows and columns")})
|
||||||
url:"qrc:/example/qml/page/T_TableView.qml"
|
url: "qrc:/example/qml/page/T_TableView.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Pagination"
|
title: qsTr("Pagination")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Pagination.qml"
|
url: "qrc:/example/qml/page/T_Pagination.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"MultiWindow"
|
title: qsTr("MultiWindow")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_MultiWindow.qml"
|
url: "qrc:/example/qml/page/T_MultiWindow.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"FlipView"
|
title: qsTr("FlipView")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/FlipView.png",order:2,recentlyAdded:true,desc:"Presents a collection of items that the user canflip through, one item at a time."})
|
extra: ({image:"qrc:/example/res/image/control/FlipView.png",order:2,recentlyAdded:true,desc:qsTr("Presents a collection of items that the user canflip through, one item at a time.")})
|
||||||
url:"qrc:/example/qml/page/T_FlipView.qml"
|
url: "qrc:/example/qml/page/T_FlipView.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:Lang.theming
|
title: qsTr("Theming")
|
||||||
icon:FluentIcons.Brightness
|
icon:FluentIcons.Brightness
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Acrylic"
|
title: qsTr("Acrylic")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Acrylic.qml"
|
url: "qrc:/example/qml/page/T_Acrylic.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Theme"
|
title: qsTr("Theme")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Theme.qml"
|
url: "qrc:/example/qml/page/T_Theme.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Typography"
|
title: qsTr("Typography")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Typography.qml"
|
url: "qrc:/example/qml/page/T_Typography.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Awesome"
|
title: qsTr("Awesome")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Awesome.qml"
|
url: "qrc:/example/qml/page/T_Awesome.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title: Lang.chart
|
title: qsTr("Chart")
|
||||||
icon:FluentIcons.AreaChart
|
icon: FluentIcons.AreaChart
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.bar_chart
|
title: qsTr("Bar Chart")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/chart/T_BarChart.qml"
|
url: "qrc:/example/qml/chart/T_BarChart.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.line_chart
|
title: qsTr("Line Chart")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/chart/T_LineChart.qml"
|
url: "qrc:/example/qml/chart/T_LineChart.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.pie_chart
|
title: qsTr("Pie Chart")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/chart/T_PieChart.qml"
|
url: "qrc:/example/qml/chart/T_PieChart.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.polar_area_chart
|
title: qsTr("Polar Area Chart")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/chart/T_PolarAreaChart.qml"
|
url: "qrc:/example/qml/chart/T_PolarAreaChart.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.bubble_chart
|
title: qsTr("Bubble Chart")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/chart/T_BubbleChart.qml"
|
url: "qrc:/example/qml/chart/T_BubbleChart.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.scatter_chart
|
title: qsTr("Scatter Chart")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/chart/T_ScatterChart.qml"
|
url: "qrc:/example/qml/chart/T_ScatterChart.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.radar_chart
|
title: qsTr("Radar Chart")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/chart/T_RadarChart.qml"
|
url: "qrc:/example/qml/chart/T_RadarChart.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -412,67 +412,67 @@ FluObject{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:Lang.other
|
title: qsTr("Other")
|
||||||
icon:FluentIcons.Shop
|
icon: FluentIcons.Shop
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"QRCode"
|
title: qsTr("QRCode")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_QRCode.qml"
|
url: "qrc:/example/qml/page/T_QRCode.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Tour"
|
title: qsTr("Tour")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Tour.qml"
|
url: "qrc:/example/qml/page/T_Tour.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Timeline"
|
title: qsTr("Timeline")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Timeline.qml"
|
url: "qrc:/example/qml/page/T_Timeline.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Captcha"
|
title: qsTr("Captcha")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Captcha.qml"
|
url: "qrc:/example/qml/page/T_Captcha.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Network"
|
title: qsTr("Network")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Network.qml"
|
url: "qrc:/example/qml/page/T_Network.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
id:item_other
|
id: item_other
|
||||||
title:"RemoteLoader"
|
title: qsTr("Remote Loader")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
count: 99
|
count: 99
|
||||||
infoBadge:FluBadge{
|
infoBadge:FluBadge{
|
||||||
count: item_other.count
|
count: item_other.count
|
||||||
color: Qt.rgba(82/255,196/255,26/255,1)
|
color: Qt.rgba(82/255,196/255,26/255,1)
|
||||||
}
|
}
|
||||||
url:"qrc:/example/qml/page/T_RemoteLoader.qml"
|
url: "qrc:/example/qml/page/T_RemoteLoader.qml"
|
||||||
onTap:{
|
onTap: {
|
||||||
item_other.count = 0
|
item_other.count = 0
|
||||||
navigationView.push("qrc:/example/qml/page/T_RemoteLoader.qml")
|
navigationView.push("qrc:/example/qml/page/T_RemoteLoader.qml")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"HotLoader"
|
title: qsTr("Hot Loader")
|
||||||
onTapListener:function(){
|
onTapListener: function(){
|
||||||
FluApp.navigate("/hotload")
|
FluApp.navigate("/hotload")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"3D"
|
title: qsTr("3D")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_3D.qml"
|
url: "qrc:/example/qml/page/T_3D.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Test Crash"
|
title: qsTr("Test Crash")
|
||||||
visible: FluTools.isWin()
|
visible: FluTools.isWin()
|
||||||
onTapListener: function(){
|
onTapListener: function(){
|
||||||
AppInfo.testCrash()
|
AppInfo.testCrash()
|
||||||
|
|
|
@ -1,104 +0,0 @@
|
||||||
pragma Singleton
|
|
||||||
|
|
||||||
import QtQuick
|
|
||||||
|
|
||||||
QtObject {
|
|
||||||
|
|
||||||
property string home
|
|
||||||
property string basic_input
|
|
||||||
property string form
|
|
||||||
property string surface
|
|
||||||
property string layout
|
|
||||||
property string popus
|
|
||||||
property string navigation
|
|
||||||
property string theming
|
|
||||||
property string media
|
|
||||||
property string dark_mode
|
|
||||||
property string sys_dark_mode
|
|
||||||
property string search
|
|
||||||
property string about
|
|
||||||
property string settings
|
|
||||||
property string locale
|
|
||||||
property string navigation_view_display_mode
|
|
||||||
property string other
|
|
||||||
property string chart
|
|
||||||
property string bar_chart
|
|
||||||
property string line_chart
|
|
||||||
property string pie_chart
|
|
||||||
property string polar_area_chart
|
|
||||||
property string bubble_chart
|
|
||||||
property string scatter_chart
|
|
||||||
property string radar_chart
|
|
||||||
|
|
||||||
function zh(){
|
|
||||||
home="首页"
|
|
||||||
basic_input="基本输入"
|
|
||||||
form="表单"
|
|
||||||
surface="表面"
|
|
||||||
layout="布局"
|
|
||||||
popus="弹窗"
|
|
||||||
navigation="导航"
|
|
||||||
theming="主题"
|
|
||||||
media="媒体"
|
|
||||||
dark_mode="夜间模式"
|
|
||||||
sys_dark_mode="跟随系统"
|
|
||||||
search="查找"
|
|
||||||
about="关于"
|
|
||||||
settings="设置"
|
|
||||||
locale="语言环境"
|
|
||||||
navigation_view_display_mode="导航视图显示模式"
|
|
||||||
other="其他"
|
|
||||||
chart="表格"
|
|
||||||
bar_chart="条形图"
|
|
||||||
line_chart="折线图"
|
|
||||||
pie_chart="饼图"
|
|
||||||
polar_area_chart="极坐标区域图"
|
|
||||||
bubble_chart="气泡图"
|
|
||||||
scatter_chart="散点图"
|
|
||||||
radar_chart="雷达图"
|
|
||||||
}
|
|
||||||
|
|
||||||
function en(){
|
|
||||||
home="Home"
|
|
||||||
basic_input="Basic Input"
|
|
||||||
form="Form"
|
|
||||||
surface="Surfaces"
|
|
||||||
layout="Layout"
|
|
||||||
popus="Popus"
|
|
||||||
navigation="Navigation"
|
|
||||||
theming="Theming"
|
|
||||||
media="Media"
|
|
||||||
dark_mode="Dark Mode"
|
|
||||||
sys_dark_mode="Sync with system"
|
|
||||||
search="Search"
|
|
||||||
about="About"
|
|
||||||
settings="Settings"
|
|
||||||
locale="Locale"
|
|
||||||
navigation_view_display_mode="NavigationView Display Mode"
|
|
||||||
other="Other"
|
|
||||||
chart="Chart"
|
|
||||||
bar_chart="Bar Chart"
|
|
||||||
line_chart="Line Chart"
|
|
||||||
pie_chart="Pie Chart"
|
|
||||||
polar_area_chart="Polar Area Chart"
|
|
||||||
bubble_chart="Bubble Chart"
|
|
||||||
scatter_chart="Scatter Chart"
|
|
||||||
radar_chart="Radar Chart"
|
|
||||||
}
|
|
||||||
|
|
||||||
property string __locale
|
|
||||||
property var __localeList: ["Zh","En"]
|
|
||||||
|
|
||||||
on__LocaleChanged: {
|
|
||||||
if(__locale === "Zh"){
|
|
||||||
zh()
|
|
||||||
}else{
|
|
||||||
en()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
__locale = "En"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,3 +1,2 @@
|
||||||
singleton ItemsOriginal 1.0 ItemsOriginal.qml
|
singleton ItemsOriginal 1.0 ItemsOriginal.qml
|
||||||
singleton ItemsFooter 1.0 ItemsFooter.qml
|
singleton ItemsFooter 1.0 ItemsFooter.qml
|
||||||
singleton Lang 1.0 Lang.qml
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Acrylic"
|
title: qsTr("Acrylic")
|
||||||
|
|
||||||
RowLayout{
|
RowLayout{
|
||||||
spacing: 10
|
spacing: 10
|
||||||
|
|
|
@ -6,11 +6,11 @@ import FluentUI
|
||||||
|
|
||||||
FluContentPage {
|
FluContentPage {
|
||||||
|
|
||||||
title:"Awesome"
|
title: qsTr("Awesome")
|
||||||
|
|
||||||
FluTextBox{
|
FluTextBox{
|
||||||
id:text_box
|
id:text_box
|
||||||
placeholderText: "请输入关键字"
|
placeholderText: qsTr("Please enter a keyword")
|
||||||
anchors{
|
anchors{
|
||||||
topMargin: 20
|
topMargin: 20
|
||||||
top:parent.top
|
top:parent.top
|
||||||
|
@ -18,7 +18,7 @@ FluContentPage {
|
||||||
}
|
}
|
||||||
|
|
||||||
FluFilledButton{
|
FluFilledButton{
|
||||||
text:"搜索"
|
text: qsTr("Search")
|
||||||
anchors{
|
anchors{
|
||||||
left: text_box.right
|
left: text_box.right
|
||||||
verticalCenter: text_box.verticalCenter
|
verticalCenter: text_box.verticalCenter
|
||||||
|
@ -53,7 +53,7 @@ FluContentPage {
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var text ="FluentIcons."+modelData.name;
|
var text ="FluentIcons."+modelData.name;
|
||||||
FluTools.clipText(text)
|
FluTools.clipText(text)
|
||||||
showSuccess("您复制了 "+text)
|
showSuccess(qsTr("You Copied ")+text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluText {
|
FluText {
|
||||||
|
@ -62,7 +62,7 @@ FluContentPage {
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
anchors.top: item_icon.bottom
|
anchors.top: item_icon.bottom
|
||||||
width:parent.width
|
width:parent.width
|
||||||
wrapMode: Text.WrapAnywhere
|
wrapMode: Text.WordWrap
|
||||||
text: modelData.name
|
text: modelData.name
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,12 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Badge"
|
title: qsTr("Badge")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
height: 106
|
height: 120
|
||||||
paddings: 10
|
paddings: 10
|
||||||
|
|
||||||
Column{
|
Column{
|
||||||
|
@ -20,11 +20,13 @@ FluScrollablePage{
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
left: parent.left
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"一般出现在通知图标或头像的右上角,用于显示需要处理的消息条数"
|
wrapMode: Text.WordWrap
|
||||||
|
width: parent.width
|
||||||
|
text: qsTr("It usually appears in the upper right corner of the notification icon or avatar to display the number of messages that need to be processed")
|
||||||
}
|
}
|
||||||
|
|
||||||
Row{
|
Row{
|
||||||
spacing: 20
|
spacing: 20
|
||||||
Rectangle{
|
Rectangle{
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"BreadcurmbBar"
|
title: qsTr("BreadcurmbBar")
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
var items = []
|
var items = []
|
||||||
|
@ -48,7 +48,7 @@ FluScrollablePage{
|
||||||
spacing: 10
|
spacing: 10
|
||||||
|
|
||||||
FluFilledButton{
|
FluFilledButton{
|
||||||
text:"Reset sample"
|
text: qsTr("Reset sample")
|
||||||
onClicked:{
|
onClicked:{
|
||||||
var items = []
|
var items = []
|
||||||
for(var i=0;i<10;i++){
|
for(var i=0;i<10;i++){
|
||||||
|
@ -66,7 +66,6 @@ FluScrollablePage{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
onClickItem:
|
onClickItem:
|
||||||
(model)=>{
|
(model)=>{
|
||||||
//不是点击最后一个item元素
|
|
||||||
if(model.index+1!==count()){
|
if(model.index+1!==count()){
|
||||||
breadcrumb_2.remove(model.index+1,count()-model.index-1)
|
breadcrumb_2.remove(model.index+1,count()-model.index-1)
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,11 +8,11 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Buttons"
|
title: qsTr("Buttons")
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
text:"支持Tab键切换焦点,空格键执行点击事件"
|
text: qsTr("Support the Tab key to switch focus, and the Space key to perform click events")
|
||||||
}
|
}
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
|
@ -22,9 +22,8 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
|
|
||||||
FluTextButton{
|
FluTextButton{
|
||||||
disabled:text_button_switch.checked
|
disabled: text_button_switch.checked
|
||||||
text:"Text Button"
|
text: qsTr("Text Button")
|
||||||
contentDescription: "文本按钮"
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showInfo("点击Text Button")
|
showInfo("点击Text Button")
|
||||||
}
|
}
|
||||||
|
@ -34,12 +33,12 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:text_button_switch
|
id: text_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -60,10 +59,10 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
|
|
||||||
FluButton{
|
FluButton{
|
||||||
disabled:button_switch.checked
|
disabled: button_switch.checked
|
||||||
text:"Standard Button"
|
text: qsTr("Standard Button")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showInfo("点击StandardButton")
|
showInfo(qsTr("Click StandardButton"))
|
||||||
}
|
}
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
|
@ -71,12 +70,12 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:button_switch
|
id: button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -97,10 +96,10 @@ FluScrollablePage{
|
||||||
paddings: 10
|
paddings: 10
|
||||||
|
|
||||||
FluFilledButton{
|
FluFilledButton{
|
||||||
disabled:filled_button_switch.checked
|
disabled: filled_button_switch.checked
|
||||||
text:"Filled Button"
|
text: qsTr("Filled Button")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showWarning("点击FilledButton"+height)
|
showWarning(qsTr("Click FilledButton"))
|
||||||
}
|
}
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
|
@ -108,12 +107,12 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:filled_button_switch
|
id: filled_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -135,19 +134,19 @@ FluScrollablePage{
|
||||||
|
|
||||||
FluToggleButton{
|
FluToggleButton{
|
||||||
disabled:toggle_button_switch.checked
|
disabled:toggle_button_switch.checked
|
||||||
text:"Toggle Button"
|
text: qsTr("Toggle Button")
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:toggle_button_switch
|
id: toggle_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -162,7 +161,7 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer{
|
Timer{
|
||||||
id:timer_progress
|
id: timer_progress
|
||||||
interval: 200
|
interval: 200
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
btn_progress.progress = (btn_progress.progress + 0.1).toFixed(1)
|
btn_progress.progress = (btn_progress.progress + 0.1).toFixed(1)
|
||||||
|
@ -181,9 +180,9 @@ FluScrollablePage{
|
||||||
paddings: 10
|
paddings: 10
|
||||||
|
|
||||||
FluProgressButton{
|
FluProgressButton{
|
||||||
id:btn_progress
|
id: btn_progress
|
||||||
disabled:progress_button_switch.checked
|
disabled: progress_button_switch.checked
|
||||||
text:"Progress Button"
|
text: qsTr("Progress Button")
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
left: parent.left
|
left: parent.left
|
||||||
|
@ -194,12 +193,12 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:progress_button_switch
|
id: progress_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -220,9 +219,9 @@ FluScrollablePage{
|
||||||
paddings: 10
|
paddings: 10
|
||||||
|
|
||||||
FluLoadingButton{
|
FluLoadingButton{
|
||||||
id:btn_loading
|
id: btn_loading
|
||||||
loading:loading_button_switch.checked
|
loading: loading_button_switch.checked
|
||||||
text:"Loading Button"
|
text: qsTr("Loading Button")
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
left: parent.left
|
left: parent.left
|
||||||
|
@ -232,13 +231,13 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:loading_button_switch
|
id: loading_button_switch
|
||||||
checked: true
|
checked: true
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Loading"
|
text: qsTr("Loading")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -259,7 +258,7 @@ FluScrollablePage{
|
||||||
paddings: 10
|
paddings: 10
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
Flow{
|
Flow{
|
||||||
id:layout_icon_button
|
id: layout_icon_button
|
||||||
spacing: 10
|
spacing: 10
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
|
@ -267,60 +266,60 @@ FluScrollablePage{
|
||||||
right: icon_button_switch.left
|
right: icon_button_switch.left
|
||||||
}
|
}
|
||||||
FluIconButton{
|
FluIconButton{
|
||||||
disabled:icon_button_switch.checked
|
disabled: icon_button_switch.checked
|
||||||
iconDelegate: Image{ sourceSize: Qt.size(40,40) ; width: 20; height: 20; source: "qrc:/example/res/image/ic_home_github.png" }
|
iconDelegate: Image{ sourceSize: Qt.size(40,40) ; width: 20; height: 20; source: "qrc:/example/res/image/ic_home_github.png" }
|
||||||
onClicked:{
|
onClicked:{
|
||||||
showSuccess("点击IconButton")
|
showSuccess(qsTr("Click IconButton"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluIconButton{
|
FluIconButton{
|
||||||
iconSource:FluentIcons.ChromeCloseContrast
|
iconSource: FluentIcons.ChromeCloseContrast
|
||||||
disabled:icon_button_switch.checked
|
disabled: icon_button_switch.checked
|
||||||
iconSize: 15
|
iconSize: 15
|
||||||
text:"IconOnly"
|
text: qsTr("IconOnly")
|
||||||
display: Button.IconOnly
|
display: Button.IconOnly
|
||||||
onClicked:{
|
onClicked:{
|
||||||
showSuccess("Button.IconOnly")
|
showSuccess(qsTr("Button.IconOnly"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluIconButton{
|
FluIconButton{
|
||||||
iconSource:FluentIcons.ChromeCloseContrast
|
iconSource: FluentIcons.ChromeCloseContrast
|
||||||
disabled:icon_button_switch.checked
|
disabled: icon_button_switch.checked
|
||||||
iconSize: 15
|
iconSize: 15
|
||||||
text:"TextOnly"
|
text: qsTr("TextOnly")
|
||||||
display: Button.TextOnly
|
display: Button.TextOnly
|
||||||
onClicked:{
|
onClicked:{
|
||||||
showSuccess("Button.TextOnly")
|
showSuccess(qsTr("Button.TextOnly"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluIconButton{
|
FluIconButton{
|
||||||
iconSource:FluentIcons.ChromeCloseContrast
|
iconSource: FluentIcons.ChromeCloseContrast
|
||||||
disabled:icon_button_switch.checked
|
disabled: icon_button_switch.checked
|
||||||
iconSize: 15
|
iconSize: 15
|
||||||
text:"TextBesideIcon"
|
text: qsTr("TextBesideIcon")
|
||||||
display: Button.TextBesideIcon
|
display: Button.TextBesideIcon
|
||||||
onClicked:{
|
onClicked:{
|
||||||
showSuccess("Button.TextBesideIcon")
|
showSuccess(qsTr("Button.TextBesideIcon"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluIconButton{
|
FluIconButton{
|
||||||
iconSource:FluentIcons.ChromeCloseContrast
|
iconSource: FluentIcons.ChromeCloseContrast
|
||||||
disabled:icon_button_switch.checked
|
disabled: icon_button_switch.checked
|
||||||
iconSize: 15
|
iconSize: 15
|
||||||
text:"TextUnderIcon"
|
text: qsTr("TextUnderIcon")
|
||||||
display: Button.TextUnderIcon
|
display: Button.TextUnderIcon
|
||||||
onClicked:{
|
onClicked:{
|
||||||
showSuccess("Button.TextUnderIcon")
|
showSuccess(qsTr("Button.TextUnderIcon"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:icon_button_switch
|
id: icon_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -340,35 +339,35 @@ FluScrollablePage{
|
||||||
paddings: 10
|
paddings: 10
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
FluDropDownButton{
|
FluDropDownButton{
|
||||||
disabled:drop_down_button_switch.checked
|
disabled: drop_down_button_switch.checked
|
||||||
text:"DropDownButton"
|
text: qsTr("DropDownButton")
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluMenuItem{
|
FluMenuItem{
|
||||||
text:"Menu_1"
|
text: qsTr("Menu_1")
|
||||||
}
|
}
|
||||||
FluMenuItem{
|
FluMenuItem{
|
||||||
text:"Menu_2"
|
text: qsTr("Menu_2")
|
||||||
}
|
}
|
||||||
FluMenuItem{
|
FluMenuItem{
|
||||||
text:"Menu_3"
|
text: qsTr("Menu_3")
|
||||||
}
|
}
|
||||||
FluMenuItem{
|
FluMenuItem{
|
||||||
text:"Menu_4"
|
text: qsTr("Menu_4")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:drop_down_button_switch
|
id: drop_down_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -404,24 +403,24 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
FluRadioButton{
|
FluRadioButton{
|
||||||
disabled:radio_button_switch.checked
|
disabled:radio_button_switch.checked
|
||||||
text:"Radio Button_1"
|
text: qsTr("Radio Button_1")
|
||||||
}
|
}
|
||||||
FluRadioButton{
|
FluRadioButton{
|
||||||
disabled:radio_button_switch.checked
|
disabled:radio_button_switch.checked
|
||||||
text:"Radio Button_2"
|
text: qsTr("Radio Button_2")
|
||||||
}
|
}
|
||||||
FluRadioButton{
|
FluRadioButton{
|
||||||
disabled:radio_button_switch.checked
|
disabled:radio_button_switch.checked
|
||||||
text:"Radio Button_3"
|
text: qsTr("Radio Button_3")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:radio_button_switch
|
id: radio_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"CalendarPicker"
|
title: qsTr("CalendarPicker")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
|
@ -7,10 +7,10 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Captcha"
|
title: qsTr("Captcha")
|
||||||
|
|
||||||
FluCaptcha{
|
FluCaptcha{
|
||||||
id:captcha
|
id: captcha
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
ignoreCase:switch_case.checked
|
ignoreCase:switch_case.checked
|
||||||
MouseArea{
|
MouseArea{
|
||||||
|
@ -23,7 +23,7 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"Refresh"
|
text: qsTr("Refresh")
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
onClicked: {
|
onClicked: {
|
||||||
captcha.refresh()
|
captcha.refresh()
|
||||||
|
@ -31,8 +31,8 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:switch_case
|
id: switch_case
|
||||||
text:"Ignore Case"
|
text: qsTr("Ignore Case")
|
||||||
checked: true
|
checked: true
|
||||||
Layout.topMargin: 10
|
Layout.topMargin: 10
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 10
|
Layout.topMargin: 10
|
||||||
FluTextBox{
|
FluTextBox{
|
||||||
id:text_box
|
id:text_box
|
||||||
placeholderText: "请输入验证码"
|
placeholderText: qsTr("Please enter a verification code")
|
||||||
Layout.preferredWidth: 240
|
Layout.preferredWidth: 240
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
|
@ -50,9 +50,9 @@ FluScrollablePage{
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var success = captcha.verify(text_box.text)
|
var success = captcha.verify(text_box.text)
|
||||||
if(success){
|
if(success){
|
||||||
showSuccess("验证码正确")
|
showSuccess(qsTr("The verification code is correct"))
|
||||||
}else{
|
}else{
|
||||||
showError("错误验证,请重新输入")
|
showError(qsTr("Error validation, please re-enter"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Carousel"
|
title: qsTr("Carousel")
|
||||||
|
|
||||||
ListModel{
|
ListModel{
|
||||||
id:data_model
|
id:data_model
|
||||||
|
@ -34,7 +34,7 @@ FluScrollablePage{
|
||||||
left:parent.left
|
left:parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"轮播图,支持无限轮播,无限滑动,用ListView实现的组件"
|
text: qsTr("Carousel map, support infinite carousel, infinite swipe, and components implemented with ListView")
|
||||||
}
|
}
|
||||||
Item{
|
Item{
|
||||||
width: 400
|
width: 400
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"CheckBox"
|
title: qsTr("CheckBox")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -16,7 +16,7 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
text:"A 2-state CheckBox"
|
text: qsTr("A 2-state CheckBox")
|
||||||
}
|
}
|
||||||
|
|
||||||
Row{
|
Row{
|
||||||
|
@ -30,11 +30,11 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
FluCheckBox{
|
FluCheckBox{
|
||||||
disabled: check_box_switch_two.checked
|
disabled: check_box_switch_two.checked
|
||||||
text:"Right"
|
text: qsTr("Right")
|
||||||
}
|
}
|
||||||
FluCheckBox{
|
FluCheckBox{
|
||||||
disabled: check_box_switch_two.checked
|
disabled: check_box_switch_two.checked
|
||||||
text:"Left"
|
text: qsTr("Left")
|
||||||
textRight: false
|
textRight: false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ FluScrollablePage{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -62,7 +62,7 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
text:"A 3-state CheckBox"
|
text: qsTr("A 3-state CheckBox")
|
||||||
}
|
}
|
||||||
|
|
||||||
Row{
|
Row{
|
||||||
|
@ -73,7 +73,7 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
FluCheckBox{
|
FluCheckBox{
|
||||||
property int count: 1
|
property int count: 1
|
||||||
text:"Three State"
|
text: qsTr("Three State")
|
||||||
disabled: check_box_switch_three.checked
|
disabled: check_box_switch_three.checked
|
||||||
clickListener: function(){
|
clickListener: function(){
|
||||||
var flag = count%3
|
var flag = count%3
|
||||||
|
@ -94,12 +94,12 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:check_box_switch_three
|
id: check_box_switch_three
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Clip"
|
title: qsTr("Clip")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -22,8 +22,7 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"配合图片使用(software渲染下该组件将没有效果)"
|
text: qsTr("Use with images (this component will have no effect under software rendering)")
|
||||||
font: FluTextStyle.Subtitle
|
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
}
|
}
|
||||||
RowLayout{
|
RowLayout{
|
||||||
|
@ -31,7 +30,7 @@ FluScrollablePage{
|
||||||
FluClip{
|
FluClip{
|
||||||
width: 50
|
width: 50
|
||||||
height: 50
|
height: 50
|
||||||
radius:[25,0,25,25]
|
radius: [25,0,25,25]
|
||||||
Image {
|
Image {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -42,7 +41,7 @@ FluScrollablePage{
|
||||||
FluClip{
|
FluClip{
|
||||||
width: 50
|
width: 50
|
||||||
height: 50
|
height: 50
|
||||||
radius:[10,10,10,10]
|
radius: [10,10,10,10]
|
||||||
Image {
|
Image {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -53,7 +52,7 @@ FluScrollablePage{
|
||||||
FluClip{
|
FluClip{
|
||||||
width: 50
|
width: 50
|
||||||
height: 50
|
height: 50
|
||||||
radius:[25,25,25,25]
|
radius: [25,25,25,25]
|
||||||
Image {
|
Image {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -64,7 +63,7 @@ FluScrollablePage{
|
||||||
FluClip{
|
FluClip{
|
||||||
width: 50
|
width: 50
|
||||||
height: 50
|
height: 50
|
||||||
radius:[0,25,25,25]
|
radius: [0,25,25,25]
|
||||||
Image {
|
Image {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -76,7 +75,7 @@ FluScrollablePage{
|
||||||
FluClip{
|
FluClip{
|
||||||
width: 1920/5
|
width: 1920/5
|
||||||
height: 1200/5
|
height: 1200/5
|
||||||
radius:[8,8,8,8]
|
radius: [8,8,8,8]
|
||||||
Image {
|
Image {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
source: "qrc:/example/res/image/banner_1.jpg"
|
source: "qrc:/example/res/image/banner_1.jpg"
|
||||||
|
|
|
@ -7,21 +7,27 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"ColorPicker"
|
title: qsTr("ColorPicker")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
height: 60
|
height: 60
|
||||||
paddings: 10
|
paddings: 10
|
||||||
|
|
||||||
RowLayout{
|
RowLayout{
|
||||||
FluText{
|
FluText{
|
||||||
text:"点击选择颜色->"
|
text: qsTr("Click to Select a Color - >")
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
FluColorPicker{
|
FluColorPicker{
|
||||||
|
cancelText: qsTr("Cancel")
|
||||||
|
okText: qsTr("OK")
|
||||||
|
titleText: qsTr("Color Picker")
|
||||||
|
editText: qsTr("Edit Color")
|
||||||
|
redText: qsTr("Red")
|
||||||
|
greenText: qsTr("Green")
|
||||||
|
blueText: qsTr("Blue")
|
||||||
|
opacityText: qsTr("Opacity")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"ComboBox"
|
title: qsTr("ComboBox")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"TimePicker"
|
title: qsTr("TimePicker")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -20,10 +20,15 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"showYear=true"
|
text: qsTr("showYear=true")
|
||||||
}
|
}
|
||||||
FluDatePicker{
|
FluDatePicker{
|
||||||
current: new Date()
|
current: new Date()
|
||||||
|
yearText: qsTr("Year")
|
||||||
|
monthText: qsTr("Month")
|
||||||
|
dayText: qsTr("Day")
|
||||||
|
cancelText: qsTr("Cancel")
|
||||||
|
okText: qsTr("OK")
|
||||||
onAccepted: {
|
onAccepted: {
|
||||||
showSuccess(current.toLocaleDateString())
|
showSuccess(current.toLocaleDateString())
|
||||||
}
|
}
|
||||||
|
@ -49,10 +54,15 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"showYear=false"
|
text: qsTr("showYear=false")
|
||||||
}
|
}
|
||||||
FluDatePicker{
|
FluDatePicker{
|
||||||
showYear:false
|
showYear: false
|
||||||
|
yearText: qsTr("Year")
|
||||||
|
monthText: qsTr("Month")
|
||||||
|
dayText: qsTr("Day")
|
||||||
|
cancelText: qsTr("Cancel")
|
||||||
|
okText: qsTr("OK")
|
||||||
onAccepted: {
|
onAccepted: {
|
||||||
showSuccess(current.toLocaleDateString())
|
showSuccess(current.toLocaleDateString())
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Dialog"
|
title: qsTr("Dialog")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -16,7 +16,7 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
FluButton{
|
FluButton{
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
text:"Show Double Button Dialog"
|
text: qsTr("Show Double Button Dialog")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
double_btn_dialog.open()
|
double_btn_dialog.open()
|
||||||
}
|
}
|
||||||
|
@ -27,16 +27,16 @@ FluScrollablePage{
|
||||||
Layout.topMargin: -1
|
Layout.topMargin: -1
|
||||||
code:'FluContentDialog{
|
code:'FluContentDialog{
|
||||||
id:dialog
|
id:dialog
|
||||||
title:"友情提示"
|
title: qsTr("Friendly Reminder")
|
||||||
message:"确定要退出程序么?"
|
message: qsTr("Are you sure you want to opt out?")
|
||||||
negativeText:"取消"
|
negativeText: qsTr("Cancel")
|
||||||
buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
|
buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
|
||||||
onNegativeClicked:{
|
onNegativeClicked:{
|
||||||
showSuccess("点击取消按钮")
|
showSuccess(qsTr("Click the Cancel Button"))
|
||||||
}
|
}
|
||||||
positiveText:"确定"
|
positiveText: qsTr("OK")
|
||||||
onPositiveClicked:{
|
onPositiveClicked:{
|
||||||
showSuccess("点击确定按钮")
|
showSuccess(qsTr("Click the OK Button"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dialog.open()'
|
dialog.open()'
|
||||||
|
@ -44,16 +44,16 @@ FluScrollablePage{
|
||||||
|
|
||||||
FluContentDialog{
|
FluContentDialog{
|
||||||
id:double_btn_dialog
|
id:double_btn_dialog
|
||||||
title:"友情提示"
|
title: qsTr("Friendly Reminder")
|
||||||
message:"确定要退出程序么?"
|
message: qsTr("Are you sure you want to opt out?")
|
||||||
buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
|
buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
|
||||||
negativeText:"取消"
|
negativeText: qsTr("Cancel")
|
||||||
onNegativeClicked:{
|
onNegativeClicked: {
|
||||||
showSuccess("点击取消按钮")
|
showSuccess(qsTr("Click the Cancel Button"))
|
||||||
}
|
}
|
||||||
positiveText:"确定"
|
positiveText: qsTr("OK")
|
||||||
onPositiveClicked:{
|
onPositiveClicked:{
|
||||||
showSuccess("点击确定按钮")
|
showSuccess(qsTr("Click the OK Button"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
FluButton{
|
FluButton{
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
text:"Show Triple Button Dialog"
|
text: qsTr("Show Triple Button Dialog")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
triple_btn_dialog.open()
|
triple_btn_dialog.open()
|
||||||
}
|
}
|
||||||
|
@ -74,43 +74,43 @@ FluScrollablePage{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: -1
|
Layout.topMargin: -1
|
||||||
code:'FluContentDialog{
|
code:'FluContentDialog{
|
||||||
id:dialog
|
id: dialog
|
||||||
title:"友情提示"
|
title: qsTr("Friendly Reminder")
|
||||||
message:"确定要退出程序么?"
|
message: qsTr("Are you sure you want to opt out?")
|
||||||
negativeText:"取消"
|
negativeText: qsTr("Cancel")
|
||||||
buttonFlags: FluContentDialogType.NeutralButton | FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
|
buttonFlags: FluContentDialogType.NeutralButton | FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
|
||||||
negativeText:"取消"
|
negativeText: qsTr("Cancel")
|
||||||
onNegativeClicked:{
|
onNegativeClicked: {
|
||||||
showSuccess("点击取消按钮")
|
showSuccess(qsTr("Click the Cancel Button"))
|
||||||
}
|
}
|
||||||
positiveText:"确定"
|
positiveText: qsTr("OK")
|
||||||
onPositiveClicked:{
|
onPositiveClicked: {
|
||||||
showSuccess("点击确定按钮")
|
showSuccess(qsTr("Click the OK Button"))
|
||||||
}
|
}
|
||||||
neutralText:"最小化"
|
neutralText: qsTr("Minimize")
|
||||||
onNeutralClicked:{
|
onNeutralClicked: {
|
||||||
showSuccess("点击最小化按钮")
|
showSuccess(qsTr("Click Minimize"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dialog.open()'
|
dialog.open()'
|
||||||
}
|
}
|
||||||
|
|
||||||
FluContentDialog{
|
FluContentDialog{
|
||||||
id:triple_btn_dialog
|
id: triple_btn_dialog
|
||||||
title:"友情提示"
|
title: qsTr("Friendly Reminder")
|
||||||
message:"确定要退出程序么?"
|
message: qsTr("Are you sure you want to opt out?")
|
||||||
buttonFlags: FluContentDialogType.NeutralButton | FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
|
buttonFlags: FluContentDialogType.NeutralButton | FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
|
||||||
negativeText:"取消"
|
negativeText: qsTr("Cancel")
|
||||||
onNegativeClicked:{
|
onNegativeClicked: {
|
||||||
showSuccess("点击取消按钮")
|
showSuccess(qsTr("Click the Cancel Button"))
|
||||||
}
|
}
|
||||||
positiveText:"确定"
|
positiveText: qsTr("OK")
|
||||||
onPositiveClicked:{
|
onPositiveClicked: {
|
||||||
showSuccess("点击确定按钮")
|
showSuccess(qsTr("Click the OK Button"))
|
||||||
}
|
}
|
||||||
neutralText:"最小化"
|
neutralText: qsTr("Minimize")
|
||||||
onNeutralClicked:{
|
onNeutralClicked: {
|
||||||
showSuccess("点击最小化按钮")
|
showSuccess(qsTr("Click Minimize"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ FluScrollablePage{
|
||||||
FluButton{
|
FluButton{
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.topMargin: 5
|
anchors.topMargin: 5
|
||||||
text:"Custom Content Dialog"
|
text: qsTr("Custom Content Dialog")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
custom_btn_dialog.open()
|
custom_btn_dialog.open()
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,7 @@ FluScrollablePage{
|
||||||
FluButton{
|
FluButton{
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.topMargin: 48
|
anchors.topMargin: 48
|
||||||
text:"Custom Content Dialog2"
|
text: qsTr("Custom Content Dialog2")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
custom_btn_dialog2.open()
|
custom_btn_dialog2.open()
|
||||||
}
|
}
|
||||||
|
@ -140,10 +140,10 @@ FluScrollablePage{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: -1
|
Layout.topMargin: -1
|
||||||
code:'FluContentDialog{
|
code:'FluContentDialog{
|
||||||
id:dialog
|
id: dialog
|
||||||
title:"友情提示"
|
title: qsTr("Friendly Reminder")
|
||||||
message:"数据正在加载中,请稍等..."
|
message: qsTr("Data is loading, please wait...")
|
||||||
negativeText:"取消加载"
|
negativeText: qsTr("Unload")
|
||||||
contentDelegate: Component{
|
contentDelegate: Component{
|
||||||
Item{
|
Item{
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
@ -153,22 +153,22 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onNegativeClicked:{
|
onNegativeClicked: {
|
||||||
showSuccess("点击取消按钮")
|
showSuccess(qsTr("Click the Cancel Button"))
|
||||||
}
|
}
|
||||||
positiveText:"确定"
|
positiveText :qsTr("OK")
|
||||||
onPositiveClicked:{
|
onPositiveClicked: {
|
||||||
showSuccess("点击确定按钮")
|
showSuccess(qsTr("Click the OK Button"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dialog.open()'
|
dialog.open()'
|
||||||
}
|
}
|
||||||
|
|
||||||
FluContentDialog{
|
FluContentDialog{
|
||||||
id:custom_btn_dialog
|
id: custom_btn_dialog
|
||||||
title:"友情提示"
|
title: qsTr("Friendly Reminder")
|
||||||
message:"数据正在加载中,请稍等..."
|
message: qsTr("Data is loading, please wait...")
|
||||||
negativeText:"取消加载"
|
negativeText: qsTr("Unload")
|
||||||
contentDelegate: Component{
|
contentDelegate: Component{
|
||||||
Item{
|
Item{
|
||||||
implicitWidth: parent.width
|
implicitWidth: parent.width
|
||||||
|
@ -178,18 +178,18 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onNegativeClicked:{
|
onNegativeClicked: {
|
||||||
showSuccess("点击取消按钮")
|
showSuccess(qsTr("Click the Cancel Button"))
|
||||||
}
|
}
|
||||||
positiveText:"确定"
|
positiveText: qsTr("OK")
|
||||||
onPositiveClickListener:function(){
|
onPositiveClickListener: function(){
|
||||||
showError("测试InfoBar层级在Popup之上")
|
showError(qsTr("Test the InfoBar level on top of the Popup"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluContentDialog{
|
FluContentDialog{
|
||||||
id:custom_btn_dialog2
|
id:custom_btn_dialog2
|
||||||
title:"折线图"
|
title: qsTr("Line Chart")
|
||||||
contentDelegate: Component{
|
contentDelegate: Component{
|
||||||
Item{
|
Item{
|
||||||
implicitWidth: parent.width
|
implicitWidth: parent.width
|
||||||
|
@ -224,9 +224,9 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
buttonFlags: FluContentDialogType.PositiveButton
|
buttonFlags: FluContentDialogType.PositiveButton
|
||||||
positiveText:"确定"
|
positiveText: qsTr("OK")
|
||||||
onPositiveClicked:{
|
onPositiveClicked: {
|
||||||
showSuccess("点击确定按钮")
|
showSuccess(qsTr("Click the OK Button"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Expander"
|
title: qsTr("Expander")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -23,7 +23,7 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluExpander{
|
FluExpander{
|
||||||
headerText:"打开一个单选框"
|
headerText: qsTr("Open a radio box")
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
Item{
|
Item{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -50,7 +50,7 @@ FluScrollablePage{
|
||||||
|
|
||||||
FluExpander{
|
FluExpander{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
headerText:"打开一个滑动文本框"
|
headerText: qsTr("Open a sliding text box")
|
||||||
Item{
|
Item{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
Flickable{
|
Flickable{
|
||||||
|
@ -64,9 +64,16 @@ FluScrollablePage{
|
||||||
FluText{
|
FluText{
|
||||||
id:text_info
|
id:text_info
|
||||||
width: scrollview.width
|
width: scrollview.width
|
||||||
wrapMode: Text.WrapAnywhere
|
wrapMode: Text.WordWrap
|
||||||
padding: 14
|
padding: 14
|
||||||
text:"先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。宫中府中,俱为一体;陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不宜偏私,使内外异法也。侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下。愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能,是以众议举宠为督。愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。臣不胜受恩感激。今当远离,临表涕零,不知所言。"
|
text: qsTr("Permit me to observe: the late emperor was taken from us before he could finish his life`s work, the restoration of Han. Today, the empire is still divided in three, and our very survival is threatened. Yet still the officials at court and the soldiers throughout the realm remain loyal to you, your majesty. Because they remember the late emperor, all of them, and they wish to repay his kindness in service to you. This is the moment to extend your divine influence, to honour the memory of the late Emperor and strengthen the morale of your officers. It is not time to listen to bad advice, or close your ears to the suggestions of loyal men.
|
||||||
|
The court and the administration are as one. Both must be judged by one standard. Those who are loyal and good must get what they deserve, but so must the evil-doers who break the law. This will demonstrate the justice of your rule. There cannot be one law for the court and another for the administration.
|
||||||
|
Counselors and attendants like Guo Youzhi, Fei Yi, and Dong Yun are all reliable men, loyal of purpose and pure in motive. The late Emperor selected them for office so that they would serve you after his death.These are the men who should be consulted on all palace affairs. Xiang Chong has proved himself a fine general in battle, and the late Emperor believed in him. That is why the assembly has recommended him for overall command. It will keep the troops happy if he is consulted on all military matters.
|
||||||
|
Xiang Chong has proved himself a fine general in battle, and the late Emperor believed in him. That is why the assembly has recommended him for overall command. It will keep the troops happy if he is consulted on all military matters.
|
||||||
|
The emperors of the Western Han chose their courtiers wisely, and their dynasty flourished. The emperors of the Eastern Han chose poorly, and they doomed the empire to ruin. Whenever the late Emperor discussed this problem with me, he lamented the failings of Emperors Huan and Ling. Advisors like Guo Youzhi, Fei Yi, Chen Zhen, Zhang Yi, and Jiang Wan – these are all men of great integrity and devotion. I encourage you to trust them, your majesty, if the house of Han is to rise again.
|
||||||
|
I begin as a common man, farming in my fields in Nanyang, doing what I could to survive in an age of chaos. I never had any interest in making a name for myself as a noble. The late Emperor was not ashamed to visit my cottage and seek my advice. Grateful for his regard, I responded to his appeal and threw myself into his service. Now twenty-one years has passed, the late Emperor always appreciated my caution and, in his final days, entrusted me with his cause.
|
||||||
|
Since that moment, I have been tormented day and night by the fear that I might let him down. That is why I crossed the Lu river at the height of summer, and entered the wastelands beyond. Now the south has been subdued, and our forces are fully armed.I should lead our soldiers to conquer the northern heartland and attempt to remove the hateful traitors, restore the house of Han, and return it to the former capital.This the way I mean to honor my debt to the late Emperor and fulfill my duty to you. Guo Youzhi, Fei Yi, and Dong Yun are the ones who should be making policy decisions and recommendations.
|
||||||
|
My only desire is to be permitted to drive out the traitors and restore the Han. If I should let you down, punish my offense and report it to the spirit of the late Emperor. If those three advisors should fail in their duties, then they should be punished for their negligence.Your Majesty, consider your course of action carefully. Seek out good advice, and never forget the late Emperor. I depart now on a long expedition, and I will be forever grateful if you heed my advice. Blinded by my own tears, I know not what I write.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,7 +85,7 @@ FluScrollablePage{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: -1
|
Layout.topMargin: -1
|
||||||
code:'FluExpander{
|
code:'FluExpander{
|
||||||
headerText:"打开一个单选框"
|
headerText: qsTr("Open a radio box")
|
||||||
Item{
|
Item{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
Flickable{
|
Flickable{
|
||||||
|
@ -90,9 +97,9 @@ FluScrollablePage{
|
||||||
FluText{
|
FluText{
|
||||||
id:text_info
|
id:text_info
|
||||||
width: scrollview.width
|
width: scrollview.width
|
||||||
wrapMode: Text.WrapAnywhere
|
wrapMode: Text.WordWrap
|
||||||
padding: 14
|
padding: 14
|
||||||
text:"先帝创业未半而中道崩殂,今天下三分......""
|
text: qsTr("Permit me to observe: the late emperor was taken from us before he could finish his life`s work...")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"FlipView"
|
title: qsTr("FlipView")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -17,7 +17,7 @@ FluScrollablePage{
|
||||||
ColumnLayout{
|
ColumnLayout{
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
FluText{
|
FluText{
|
||||||
text:"水平方向的FlipView"
|
text: qsTr("Horizontal FlipView")
|
||||||
}
|
}
|
||||||
FluFlipView{
|
FluFlipView{
|
||||||
Image{
|
Image{
|
||||||
|
@ -69,7 +69,7 @@ FluScrollablePage{
|
||||||
ColumnLayout{
|
ColumnLayout{
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
FluText{
|
FluText{
|
||||||
text:"垂直方向的FlipView"
|
text: qsTr("Vertical FlipView")
|
||||||
}
|
}
|
||||||
FluFlipView{
|
FluFlipView{
|
||||||
vertical:true
|
vertical:true
|
||||||
|
|
|
@ -11,12 +11,24 @@ FluScrollablePage{
|
||||||
animDisabled: true
|
animDisabled: true
|
||||||
|
|
||||||
ListModel{
|
ListModel{
|
||||||
id:model_header
|
id: model_header
|
||||||
ListElement{
|
ListElement{
|
||||||
icon:"qrc:/example/res/image/ic_home_github.png"
|
icon: "qrc:/example/res/image/ic_home_github.png"
|
||||||
title:"FluentUI GitHub"
|
title: qsTr("FluentUI GitHub")
|
||||||
desc:"The latest FluentUI controls and styles for your applications."
|
desc: qsTr("The latest FluentUI controls and styles for your applications.")
|
||||||
url:"https://github.com/zhuzichu520/FluentUI"
|
url: "https://github.com/zhuzichu520/FluentUI"
|
||||||
|
clicked: function(model){
|
||||||
|
Qt.openUrlExternally(model.url)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ListElement{
|
||||||
|
icon: "qrc:/example/res/image/favicon.ico"
|
||||||
|
title: qsTr("FluentUI Initalizr")
|
||||||
|
desc: qsTr("FluentUI Initializr is a Tool that helps you create and customize Fluent UI projects with various options.")
|
||||||
|
url: "https://github.com/zhuzichu520/FluentUI"
|
||||||
|
clicked: function(model){
|
||||||
|
FluApp.navigate("/fluentInitalizr")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,7 +118,7 @@ FluScrollablePage{
|
||||||
Layout.leftMargin: 20
|
Layout.leftMargin: 20
|
||||||
color: FluColors.Grey120
|
color: FluColors.Grey120
|
||||||
font.pixelSize: 12
|
font.pixelSize: 12
|
||||||
wrapMode: Text.WrapAnywhere
|
wrapMode: Text.WordWrap
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluIcon{
|
FluIcon{
|
||||||
|
@ -129,7 +141,7 @@ FluScrollablePage{
|
||||||
else scrollbar_header.increase()
|
else scrollbar_header.increase()
|
||||||
}
|
}
|
||||||
onClicked: {
|
onClicked: {
|
||||||
Qt.openUrlExternally(model.url)
|
model.clicked(model)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -202,7 +214,7 @@ FluScrollablePage{
|
||||||
id:item_desc
|
id:item_desc
|
||||||
text:desc
|
text:desc
|
||||||
color:FluColors.Grey120
|
color:FluColors.Grey120
|
||||||
wrapMode: Text.WrapAnywhere
|
wrapMode: Text.WordWrap
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
font: FluTextStyle.Caption
|
font: FluTextStyle.Caption
|
||||||
maximumLineCount: 2
|
maximumLineCount: 2
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Image"
|
title: qsTr("Image")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -24,9 +24,10 @@ FluScrollablePage{
|
||||||
width: 384
|
width: 384
|
||||||
height: 240
|
height: 240
|
||||||
source: "https://gitee.com/zhu-zichu/zhu-zichu/raw/74f075efe2f8d3c3bb7ba3c2259e403450e4050b/image/banner_4.jpg"
|
source: "https://gitee.com/zhu-zichu/zhu-zichu/raw/74f075efe2f8d3c3bb7ba3c2259e403450e4050b/image/banner_4.jpg"
|
||||||
|
errorButtonText: qsTr("Reload")
|
||||||
onStatusChanged:{
|
onStatusChanged:{
|
||||||
if(status === Image.Error){
|
if(status === Image.Error){
|
||||||
showError("图片加载失败,请重新加载")
|
showError(qsTr("The image failed to load, please reload"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
clickErrorListener: function(){
|
clickErrorListener: function(){
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"InfoBar"
|
title: qsTr("InfoBar")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -21,39 +21,39 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"Info"
|
text: qsTr("Info")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showInfo("这是一个Info样式的InfoBar")
|
showInfo(qsTr("This is an InfoBar in the Info Style"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"Warning"
|
text: qsTr("Warning")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showWarning("这是一个Warning样式的InfoBar")
|
showWarning(qsTr("This is an InfoBar in the Warning Style"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"Error"
|
text:"Error"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showError("这是一个Error样式的InfoBar")
|
showError(qsTr("This is an InfoBar in the Error Style"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"Success"
|
text:"Success"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showSuccess("这是一个Success样式的InfoBar")
|
showSuccess(qsTr("This is an InfoBar in the Success Style"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"手动关闭的InfoBar"
|
text: qsTr("InfoBar that needs to be turned off manually")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showInfo("这是一个Info样式的InfoBar",0,"支持手动关闭")
|
showInfo("This is an InfoBar in the Info Style",0,"Manual shutdown is supported")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"Loading"
|
text:"Loading"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showLoading()
|
showLoading(qsTr("Loading..."))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,12 +61,12 @@ FluScrollablePage{
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: -1
|
Layout.topMargin: -1
|
||||||
code:'showInfo("这是一个Info样式的InfoBar")
|
code:'showInfo(qsTr("This is an InfoBar in the Info Style"))
|
||||||
|
|
||||||
showWarning("这是一个Warning样式的InfoBar")
|
showWarning(qsTr("This is an InfoBar in the Warning Style"))
|
||||||
|
|
||||||
showError("这是一个Error样式的InfoBar")
|
showError(qsTr("This is an InfoBar in the Error Style"))
|
||||||
|
|
||||||
showSuccess("这是一个Success样式的InfoBar这是一个Success样式的InfoBar")'
|
showSuccess(qsTr("This is an InfoBar in the Success Style"))'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Menu"
|
title: qsTr("Menu")
|
||||||
|
|
||||||
FluMenu {
|
FluMenu {
|
||||||
id:menu
|
id:menu
|
||||||
|
@ -27,20 +27,20 @@ FluScrollablePage{
|
||||||
iconSource: FluentIcons.Zoom
|
iconSource: FluentIcons.Zoom
|
||||||
iconSpacing: 3
|
iconSpacing: 3
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
showError("Search")
|
showError(qsTr("Search"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Action {
|
Action {
|
||||||
text: qsTr("Disable")
|
text: qsTr("Disable")
|
||||||
enabled:false
|
enabled:false
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
showError("Disable")
|
showError(qsTr("Disable"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluMenuSeparator { }
|
FluMenuSeparator { }
|
||||||
Action { text: qsTr("Check");checkable: true;checked: true}
|
Action { text: qsTr("Check");checkable: true;checked: true}
|
||||||
FluMenu{
|
FluMenu{
|
||||||
title: "Save As..."
|
title: qsTr("Save As...")
|
||||||
Action { text: qsTr("Doc") }
|
Action { text: qsTr("Doc") }
|
||||||
Action { text: qsTr("PDF") }
|
Action { text: qsTr("PDF") }
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ FluScrollablePage{
|
||||||
paddings: 10
|
paddings: 10
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
Column{
|
Column{
|
||||||
id:layout_column
|
id: layout_column
|
||||||
spacing: 15
|
spacing: 15
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
|
@ -61,11 +61,11 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
text:"Menu"
|
text: qsTr("Menu")
|
||||||
}
|
}
|
||||||
|
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"Show Menu Popup"
|
text: qsTr("Show Menu Popup")
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
onClicked:{
|
onClicked:{
|
||||||
menu.popup()
|
menu.popup()
|
||||||
|
@ -112,7 +112,7 @@ menu.popup()
|
||||||
}
|
}
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
text:"MenuBar"
|
text: qsTr("MenuBar")
|
||||||
}
|
}
|
||||||
|
|
||||||
FluMenuBar {
|
FluMenuBar {
|
||||||
|
@ -129,7 +129,7 @@ menu.popup()
|
||||||
enabled:false
|
enabled:false
|
||||||
}
|
}
|
||||||
FluMenu{
|
FluMenu{
|
||||||
title: "Save As..."
|
title: qsTr("Save As...")
|
||||||
Action { text: qsTr("Doc") }
|
Action { text: qsTr("Doc") }
|
||||||
Action { text: qsTr("PDF") }
|
Action { text: qsTr("PDF") }
|
||||||
}
|
}
|
||||||
|
@ -168,8 +168,4 @@ menu.popup()
|
||||||
menu.popup()
|
menu.popup()
|
||||||
'
|
'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ FluScrollablePage{
|
||||||
property string password: ""
|
property string password: ""
|
||||||
property var loginPageRegister: registerForWindowResult("/login")
|
property var loginPageRegister: registerForWindowResult("/login")
|
||||||
|
|
||||||
title:"MultiWindow"
|
title: qsTr("MultiWindow")
|
||||||
|
|
||||||
Connections{
|
Connections{
|
||||||
target: loginPageRegister
|
target: loginPageRegister
|
||||||
|
@ -32,10 +32,10 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"<font color='red'>Standard</font>模式窗口,每次都会创建新窗口"
|
text: qsTr("<font color='red'>Standard</font> mode window,a new window is created every time")
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"点击创建窗口"
|
text: qsTr("Create Window")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
FluApp.navigate("/standardWindow")
|
FluApp.navigate("/standardWindow")
|
||||||
}
|
}
|
||||||
|
@ -55,11 +55,11 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"<font color='red'>SingleTask</font>模式窗口,如果窗口存在,这激活该窗口"
|
text: qsTr("<font color='red'>SingleTask</font> mode window,If a window exists, this activates the window")
|
||||||
textFormat: Text.RichText
|
textFormat: Text.RichText
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"点击创建窗口"
|
text: qsTr("Create Window")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
FluApp.navigate("/singleTaskWindow")
|
FluApp.navigate("/singleTaskWindow")
|
||||||
}
|
}
|
||||||
|
@ -79,10 +79,10 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"<font color='red'>SingleInstance</font>模式窗口,如果窗口存在,则销毁窗口,然后新建窗口"
|
text: qsTr("<font color='red'>SingleInstance</font> mode window,If the window exists, destroy the window and create a new window")
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"点击创建窗口"
|
text: qsTr("Create Window")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
FluApp.navigate("/singleInstanceWindow")
|
FluApp.navigate("/singleInstanceWindow")
|
||||||
}
|
}
|
||||||
|
@ -113,10 +113,10 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"页面跳转,不携带任何参数"
|
text: qsTr("Create the window without carrying any parameters")
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"点击跳转"
|
text: qsTr("Create Window")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
FluApp.navigate("/about")
|
FluApp.navigate("/about")
|
||||||
}
|
}
|
||||||
|
@ -127,7 +127,7 @@ FluScrollablePage{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: -1
|
Layout.topMargin: -1
|
||||||
code:'FluButton{
|
code:'FluButton{
|
||||||
text:"点击跳转"
|
text: qsTr("Create Window")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
FluApp.navigate("/about")
|
FluApp.navigate("/about")
|
||||||
}
|
}
|
||||||
|
@ -148,16 +148,16 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"页面跳转,并携带参数用户名:zhuzichu"
|
text: qsTr("Create a window with the parameter username: zhuzichu")
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"点击跳转到登录"
|
text: qsTr("Create Window")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
loginPageRegister.launch({username:"zhuzichu"})
|
loginPageRegister.launch({username:"zhuzichu"})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"登录窗口返回过来的密码->"+password
|
text:qsTr("Login Window Returned Password - >")+password
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -175,7 +175,7 @@ Connections{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"点击跳转"
|
text: qsTr("Create Window")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
loginPageRegister.launch({username:"zhuzichu"})
|
loginPageRegister.launch({username:"zhuzichu"})
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ import "../component"
|
||||||
FluContentPage{
|
FluContentPage{
|
||||||
|
|
||||||
id:root
|
id:root
|
||||||
title:"Network"
|
title: qsTr("Network")
|
||||||
|
|
||||||
FluNetworkCallable{
|
FluNetworkCallable{
|
||||||
id:callable
|
id:callable
|
||||||
|
@ -552,7 +552,7 @@ FluContentPage{
|
||||||
FluText{
|
FluText{
|
||||||
id:text_info
|
id:text_info
|
||||||
width: scrollview.width
|
width: scrollview.width
|
||||||
wrapMode: Text.WrapAnywhere
|
wrapMode: Text.WordWrap
|
||||||
padding: 14
|
padding: 14
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Pagination"
|
title: qsTr("Pagination")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -21,16 +21,22 @@ FluScrollablePage{
|
||||||
pageCurrent: 1
|
pageCurrent: 1
|
||||||
pageButtonCount: 5
|
pageButtonCount: 5
|
||||||
itemCount: 5000
|
itemCount: 5000
|
||||||
|
previousText: qsTr("<Previous")
|
||||||
|
nextText: qsTr("Next>")
|
||||||
}
|
}
|
||||||
FluPagination{
|
FluPagination{
|
||||||
pageCurrent: 2
|
pageCurrent: 2
|
||||||
itemCount: 5000
|
itemCount: 5000
|
||||||
pageButtonCount: 7
|
pageButtonCount: 7
|
||||||
|
previousText: qsTr("<Previous")
|
||||||
|
nextText: qsTr("Next>")
|
||||||
}
|
}
|
||||||
FluPagination{
|
FluPagination{
|
||||||
pageCurrent: 3
|
pageCurrent: 3
|
||||||
itemCount: 5000
|
itemCount: 5000
|
||||||
pageButtonCount: 9
|
pageButtonCount: 9
|
||||||
|
previousText: qsTr("<Previous")
|
||||||
|
nextText: qsTr("Next>")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Pivot"
|
title: qsTr("Pivot")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -15,31 +15,34 @@ FluScrollablePage{
|
||||||
height: 400
|
height: 400
|
||||||
paddings: 10
|
paddings: 10
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FluPivot{
|
FluPivot{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
currentIndex: 2
|
currentIndex: 2
|
||||||
|
|
||||||
FluPivotItem{
|
FluPivotItem{
|
||||||
title:"All"
|
title: qsTr("All")
|
||||||
contentItem:FluText{
|
contentItem:FluText{
|
||||||
text:"All emails go here."
|
text: qsTr("All emails go here.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPivotItem{
|
FluPivotItem{
|
||||||
title:"Unread"
|
title: qsTr("Unread")
|
||||||
contentItem:FluText{
|
contentItem: FluText{
|
||||||
text:"Unread emails go here."
|
text: qsTr("Unread emails go here.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPivotItem{
|
FluPivotItem{
|
||||||
title:"Flagged"
|
title: qsTr("Flagged")
|
||||||
contentItem:FluText{
|
contentItem: FluText{
|
||||||
text:"Flagged emails go here."
|
text: qsTr("Flagged emails go here.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPivotItem{
|
FluPivotItem{
|
||||||
title:"Urgent"
|
title: qsTr("Urgent")
|
||||||
contentItem:FluText{
|
contentItem: FluText{
|
||||||
text:"Urgent emails go here."
|
text: qsTr("Urgent emails go here.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,27 +53,27 @@ FluScrollablePage{
|
||||||
code:'FluPivot{
|
code:'FluPivot{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
FluPivotItem:{
|
FluPivotItem:{
|
||||||
text:"All"
|
text: qsTr("All")
|
||||||
contentItem: FluText{
|
contentItem: FluText{
|
||||||
text:"All emails go here."
|
text: qsTr("All emails go here.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPivotItem:{
|
FluPivotItem:{
|
||||||
text:"Unread"
|
text: qsTr("Unread")
|
||||||
contentItem: FluText{
|
contentItem: FluText{
|
||||||
text:"Unread emails go here."
|
text: qsTr("Unread emails go here.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPivotItem:{
|
FluPivotItem:{
|
||||||
text:"Flagged"
|
text: qsTr("Flagged")
|
||||||
contentItem: FluText{
|
contentItem: FluText{
|
||||||
text:"Flagged emails go here."
|
text: qsTr("Flagged emails go here.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPivotItem:{
|
FluPivotItem:{
|
||||||
text:"Urgent"
|
text: qsTr("Urgent")
|
||||||
contentItem: FluText{
|
contentItem: FluText{
|
||||||
text:"Urgent emails go here."
|
text: qsTr("Urgent emails go here.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Progress"
|
title: qsTr("Progress")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"QRCode"
|
title: qsTr("QRCode")
|
||||||
|
|
||||||
FluQRCode{
|
FluQRCode{
|
||||||
id:qrcode
|
id:qrcode
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"RadioButton"
|
title: qsTr("RadioButton")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -22,21 +22,21 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
FluRadioButton{
|
FluRadioButton{
|
||||||
disabled: radio_button_switch.checked
|
disabled: radio_button_switch.checked
|
||||||
text:"Right"
|
text: qsTr("Right")
|
||||||
}
|
}
|
||||||
FluRadioButton{
|
FluRadioButton{
|
||||||
disabled: radio_button_switch.checked
|
disabled: radio_button_switch.checked
|
||||||
text:"Left"
|
text: qsTr("Left")
|
||||||
textRight: false
|
textRight: false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:radio_button_switch
|
id: radio_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -61,24 +61,24 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
FluRadioButton{
|
FluRadioButton{
|
||||||
disabled: radio_button_switch2.checked
|
disabled: radio_button_switch2.checked
|
||||||
text:"Radio Button_1"
|
text: qsTr("Radio Button_1")
|
||||||
}
|
}
|
||||||
FluRadioButton{
|
FluRadioButton{
|
||||||
disabled: radio_button_switch2.checked
|
disabled: radio_button_switch2.checked
|
||||||
text:"Radio Button_2"
|
text: qsTr("Radio Button_2")
|
||||||
}
|
}
|
||||||
FluRadioButton{
|
FluRadioButton{
|
||||||
disabled: radio_button_switch2.checked
|
disabled: radio_button_switch2.checked
|
||||||
text:"Radio Button_3"
|
text: qsTr("Radio Button_3")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:radio_button_switch2
|
id: radio_button_switch2
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage {
|
FluScrollablePage {
|
||||||
|
|
||||||
title: "RatingControl"
|
title: qsTr("RatingControl")
|
||||||
|
|
||||||
FluArea {
|
FluArea {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Rectangle"
|
title: qsTr("Rectangle")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
|
@ -9,7 +9,7 @@ import "../viewmodel"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Settings"
|
title: qsTr("Settings")
|
||||||
|
|
||||||
SettingsViewModel{
|
SettingsViewModel{
|
||||||
id:viewmodel_settings
|
id:viewmodel_settings
|
||||||
|
@ -40,13 +40,13 @@ FluScrollablePage{
|
||||||
spacing: 20
|
spacing: 20
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
FluText{
|
FluText{
|
||||||
text:"当前版本 v%1".arg(AppInfo.version)
|
text: "%1 v%2".arg(qsTr("Current Version")).arg(AppInfo.version)
|
||||||
font: FluTextStyle.Body
|
font: FluTextStyle.Body
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
FluLoadingButton{
|
FluLoadingButton{
|
||||||
id:btn_checkupdate
|
id: btn_checkupdate
|
||||||
text:"检查更新"
|
text: qsTr("Check for Updates")
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
onClicked: {
|
onClicked: {
|
||||||
loading = true
|
loading = true
|
||||||
|
@ -62,7 +62,7 @@ FluScrollablePage{
|
||||||
height: 50
|
height: 50
|
||||||
paddings: 10
|
paddings: 10
|
||||||
FluCheckBox{
|
FluCheckBox{
|
||||||
text:"Use System AppBar"
|
text: qsTr("Use System AppBar")
|
||||||
checked: FluApp.useSystemAppBar
|
checked: FluApp.useSystemAppBar
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
onClicked: {
|
onClicked: {
|
||||||
|
@ -78,7 +78,7 @@ FluScrollablePage{
|
||||||
height: 50
|
height: 50
|
||||||
paddings: 10
|
paddings: 10
|
||||||
FluCheckBox{
|
FluCheckBox{
|
||||||
text:"fitsAppBarWindows"
|
text:qsTr("Fits AppBar Windows")
|
||||||
checked: window.fitsAppBarWindows
|
checked: window.fitsAppBarWindows
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
onClicked: {
|
onClicked: {
|
||||||
|
@ -88,13 +88,13 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluContentDialog{
|
FluContentDialog{
|
||||||
id:dialog_restart
|
id: dialog_restart
|
||||||
title:"友情提示"
|
title: qsTr("Friendly Reminder")
|
||||||
message:"此操作需要重启才能生效,是否重新启动?"
|
message: qsTr("This action requires a restart of the program to take effect, is it restarted?")
|
||||||
buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
|
buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
|
||||||
negativeText: "取消"
|
negativeText: qsTr("Cancel")
|
||||||
positiveText:"确定"
|
positiveText: qsTr("OK")
|
||||||
onPositiveClicked:{
|
onPositiveClicked: {
|
||||||
FluApp.exit(931)
|
FluApp.exit(931)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -112,13 +112,13 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:Lang.dark_mode
|
text: qsTr("Dark Mode")
|
||||||
font: FluTextStyle.BodyStrong
|
font: FluTextStyle.BodyStrong
|
||||||
Layout.bottomMargin: 4
|
Layout.bottomMargin: 4
|
||||||
}
|
}
|
||||||
Repeater{
|
Repeater{
|
||||||
model: [{title:"System",mode:FluThemeType.System},{title:"Light",mode:FluThemeType.Light},{title:"Dark",mode:FluThemeType.Dark}]
|
model: [{title:qsTr("System"),mode:FluThemeType.System},{title:qsTr("Light"),mode:FluThemeType.Light},{title:qsTr("Dark"),mode:FluThemeType.Dark}]
|
||||||
delegate: FluRadioButton{
|
delegate: FluRadioButton{
|
||||||
checked : FluTheme.darkMode === modelData.mode
|
checked : FluTheme.darkMode === modelData.mode
|
||||||
text:modelData.title
|
text:modelData.title
|
||||||
clickListener:function(){
|
clickListener:function(){
|
||||||
|
@ -142,12 +142,12 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:Lang.navigation_view_display_mode
|
text:qsTr("Navigation View Display Mode")
|
||||||
font: FluTextStyle.BodyStrong
|
font: FluTextStyle.BodyStrong
|
||||||
Layout.bottomMargin: 4
|
Layout.bottomMargin: 4
|
||||||
}
|
}
|
||||||
Repeater{
|
Repeater{
|
||||||
model: [{title:"Open",mode:FluNavigationViewType.Open},{title:"Compact",mode:FluNavigationViewType.Compact},{title:"Minimal",mode:FluNavigationViewType.Minimal},{title:"Auto",mode:FluNavigationViewType.Auto}]
|
model: [{title:qsTr("Open"),mode:FluNavigationViewType.Open},{title:qsTr("Compact"),mode:FluNavigationViewType.Compact},{title:qsTr("Minimal"),mode:FluNavigationViewType.Minimal},{title:qsTr("Auto"),mode:FluNavigationViewType.Auto}]
|
||||||
delegate: FluRadioButton{
|
delegate: FluRadioButton{
|
||||||
checked : viewmodel_settings.displayMode===modelData.mode
|
checked : viewmodel_settings.displayMode===modelData.mode
|
||||||
text:modelData.title
|
text:modelData.title
|
||||||
|
@ -159,6 +159,16 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ListModel{
|
||||||
|
id:model_language
|
||||||
|
ListElement{
|
||||||
|
name:"en"
|
||||||
|
}
|
||||||
|
ListElement{
|
||||||
|
name:"zh"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
|
@ -171,22 +181,21 @@ FluScrollablePage{
|
||||||
top: parent.top
|
top: parent.top
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
text:Lang.locale
|
text:qsTr("Language")
|
||||||
font: FluTextStyle.BodyStrong
|
font: FluTextStyle.BodyStrong
|
||||||
Layout.bottomMargin: 4
|
Layout.bottomMargin: 4
|
||||||
}
|
}
|
||||||
|
|
||||||
Flow{
|
Flow{
|
||||||
spacing: 5
|
spacing: 5
|
||||||
Repeater{
|
Repeater{
|
||||||
model: Lang.__localeList
|
model: TranslateHelper.languages
|
||||||
delegate: FluRadioButton{
|
delegate: FluRadioButton{
|
||||||
checked: Lang.__locale === modelData
|
checked: TranslateHelper.current === modelData
|
||||||
text:modelData
|
text:modelData
|
||||||
clickListener:function(){
|
clickListener:function(){
|
||||||
Lang.__locale = modelData
|
TranslateHelper.current = modelData
|
||||||
|
dialog_restart.open()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"ShortcutPicker"
|
title: qsTr("ShortcutPicker")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -16,6 +16,11 @@ FluScrollablePage{
|
||||||
paddings: 10
|
paddings: 10
|
||||||
FluShortcutPicker{
|
FluShortcutPicker{
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
title: qsTr("Activate the Shortcut")
|
||||||
|
message: qsTr("Press the key combination to change the shortcut")
|
||||||
|
positiveText: qsTr("Save")
|
||||||
|
neutralText: qsTr("Cancel")
|
||||||
|
negativeText: qsTr("Reset")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Slider"
|
title: qsTr("Slider")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluContentPage{
|
FluContentPage{
|
||||||
|
|
||||||
title:"SplitLayout"
|
title: qsTr("SplitLayout")
|
||||||
|
|
||||||
RowLayout{
|
RowLayout{
|
||||||
id:layout_dropdown
|
id:layout_dropdown
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluContentPage{
|
FluContentPage{
|
||||||
|
|
||||||
title:"StaggeredLayout"
|
title: qsTr("StaggeredLayout")
|
||||||
|
|
||||||
property var colors : [FluColors.Yellow,FluColors.Orange,FluColors.Red,FluColors.Magenta,FluColors.Purple,FluColors.Blue,FluColors.Teal,FluColors.Green]
|
property var colors : [FluColors.Yellow,FluColors.Orange,FluColors.Red,FluColors.Magenta,FluColors.Purple,FluColors.Blue,FluColors.Teal,FluColors.Green]
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"StatusLayout"
|
title: qsTr("StatusLayout")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
id:layout_actions
|
id:layout_actions
|
||||||
|
@ -61,8 +61,12 @@ FluScrollablePage{
|
||||||
FluStatusLayout{
|
FluStatusLayout{
|
||||||
id:status_view
|
id:status_view
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
loadingText: qsTr("Loading...")
|
||||||
|
emptyText: qsTr("Empty")
|
||||||
|
errorText: qsTr("The page went wrong...")
|
||||||
|
errorButtonText: qsTr("Reload")
|
||||||
onErrorClicked:{
|
onErrorClicked:{
|
||||||
showError("点击重新加载")
|
showError("Click Reload")
|
||||||
}
|
}
|
||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|
|
@ -9,7 +9,7 @@ FluScrollablePage{
|
||||||
|
|
||||||
property var colors : [FluColors.Yellow,FluColors.Orange,FluColors.Red,FluColors.Magenta,FluColors.Purple,FluColors.Blue,FluColors.Teal,FluColors.Green]
|
property var colors : [FluColors.Yellow,FluColors.Orange,FluColors.Red,FluColors.Magenta,FluColors.Purple,FluColors.Blue,FluColors.Teal,FluColors.Green]
|
||||||
|
|
||||||
title:"TabView"
|
title: qsTr("TabView")
|
||||||
|
|
||||||
Component{
|
Component{
|
||||||
id:com_page
|
id:com_page
|
||||||
|
@ -20,7 +20,7 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
function newTab(){
|
function newTab(){
|
||||||
tab_view.appendTab("qrc:/example/res/image/favicon.ico","Document "+tab_view.count(),com_page,colors[Math.floor(Math.random() * 8)])
|
tab_view.appendTab("qrc:/example/res/image/favicon.ico",qsTr("Document ")+tab_view.count(),com_page,colors[Math.floor(Math.random() * 8)])
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
|
|
|
@ -8,7 +8,7 @@ import "../component"
|
||||||
FluContentPage{
|
FluContentPage{
|
||||||
|
|
||||||
id:root
|
id:root
|
||||||
title:"TableView"
|
title: qsTr("TableView")
|
||||||
signal checkBoxChanged
|
signal checkBoxChanged
|
||||||
|
|
||||||
property var dataSource : []
|
property var dataSource : []
|
||||||
|
@ -70,8 +70,8 @@ FluContentPage{
|
||||||
id:custom_update_dialog
|
id:custom_update_dialog
|
||||||
property var text
|
property var text
|
||||||
property var onAccpetListener
|
property var onAccpetListener
|
||||||
title:"修改列名"
|
title: qsTr("Modify the column name")
|
||||||
negativeText:"取消"
|
negativeText: qsTr("Cancel")
|
||||||
contentDelegate: Component{
|
contentDelegate: Component{
|
||||||
Item{
|
Item{
|
||||||
implicitWidth: parent.width
|
implicitWidth: parent.width
|
||||||
|
@ -89,7 +89,7 @@ FluContentPage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
positiveText:"确定"
|
positiveText: qsTr("OK")
|
||||||
onPositiveClicked:{
|
onPositiveClicked:{
|
||||||
if(custom_update_dialog.onAccpetListener){
|
if(custom_update_dialog.onAccpetListener){
|
||||||
custom_update_dialog.onAccpetListener(custom_update_dialog.text)
|
custom_update_dialog.onAccpetListener(custom_update_dialog.text)
|
||||||
|
@ -131,7 +131,7 @@ FluContentPage{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"搜索"
|
text: qsTr("Search")
|
||||||
anchors{
|
anchors{
|
||||||
bottom: parent.bottom
|
bottom: parent.bottom
|
||||||
right: parent.right
|
right: parent.right
|
||||||
|
@ -174,7 +174,7 @@ FluContentPage{
|
||||||
id:com_column_filter_name
|
id:com_column_filter_name
|
||||||
Item{
|
Item{
|
||||||
FluText{
|
FluText{
|
||||||
text:"姓名"
|
text: qsTr("Name")
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
FluIconButton{
|
FluIconButton{
|
||||||
|
@ -208,14 +208,14 @@ FluContentPage{
|
||||||
RowLayout{
|
RowLayout{
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"删除"
|
text: qsTr("Delete")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
table_view.closeEditor()
|
table_view.closeEditor()
|
||||||
table_view.removeRow(row)
|
table_view.removeRow(row)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluFilledButton{
|
FluFilledButton{
|
||||||
text:"编辑"
|
text: qsTr("Edit")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var obj = table_view.getRow(row)
|
var obj = table_view.getRow(row)
|
||||||
obj.name = "12345"
|
obj.name = "12345"
|
||||||
|
@ -234,7 +234,7 @@ FluContentPage{
|
||||||
RowLayout{
|
RowLayout{
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
FluText{
|
FluText{
|
||||||
text:"全选"
|
text: qsTr("Select All")
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
FluCheckBox{
|
FluCheckBox{
|
||||||
|
@ -334,7 +334,7 @@ FluContentPage{
|
||||||
id:com_column_sort_age
|
id:com_column_sort_age
|
||||||
Item{
|
Item{
|
||||||
FluText{
|
FluText{
|
||||||
text:"年龄"
|
text: qsTr("Age")
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
ColumnLayout{
|
ColumnLayout{
|
||||||
|
@ -409,14 +409,14 @@ FluContentPage{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"清空"
|
text: qsTr("Clear All")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
table_view.dataSource = []
|
table_view.dataSource = []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"删除选中"
|
text: qsTr("Delete Selection")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var data = []
|
var data = []
|
||||||
var rows = []
|
var rows = []
|
||||||
|
@ -440,7 +440,7 @@ FluContentPage{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"添加一行数据"
|
text: qsTr("Add a row of Data")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
table_view.appendRow(genTestObject())
|
table_view.appendRow(genTestObject())
|
||||||
}
|
}
|
||||||
|
@ -465,17 +465,17 @@ FluContentPage{
|
||||||
{
|
{
|
||||||
title: table_view.customItem(com_column_checbox,{checked:true}),
|
title: table_view.customItem(com_column_checbox,{checked:true}),
|
||||||
dataIndex: 'checkbox',
|
dataIndex: 'checkbox',
|
||||||
width:80,
|
width:100,
|
||||||
minimumWidth:80,
|
minimumWidth:100,
|
||||||
maximumWidth:80
|
maximumWidth:100
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: table_view.customItem(com_column_update_title,{title:'头像'}),
|
title: table_view.customItem(com_column_update_title,{title:qsTr("Avatar")}),
|
||||||
dataIndex: 'avatar',
|
dataIndex: 'avatar',
|
||||||
width:100
|
width:100
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: table_view.customItem(com_column_filter_name,{title:'姓名'}),
|
title: table_view.customItem(com_column_filter_name,{title:qsTr("Name")}),
|
||||||
dataIndex: 'name',
|
dataIndex: 'name',
|
||||||
readOnly:true
|
readOnly:true
|
||||||
},
|
},
|
||||||
|
@ -488,28 +488,28 @@ FluContentPage{
|
||||||
maximumWidth:100
|
maximumWidth:100
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '住址',
|
title: qsTr("Address"),
|
||||||
dataIndex: 'address',
|
dataIndex: 'address',
|
||||||
width:200,
|
width:200,
|
||||||
minimumWidth:100,
|
minimumWidth:100,
|
||||||
maximumWidth:250
|
maximumWidth:250
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '别名',
|
title: qsTr("Nickname"),
|
||||||
dataIndex: 'nickname',
|
dataIndex: 'nickname',
|
||||||
width:100,
|
width:100,
|
||||||
minimumWidth:80,
|
minimumWidth:80,
|
||||||
maximumWidth:200
|
maximumWidth:200
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '长字符串',
|
title: qsTr("Long String"),
|
||||||
dataIndex: 'longstring',
|
dataIndex: 'longstring',
|
||||||
width:200,
|
width:200,
|
||||||
minimumWidth:100,
|
minimumWidth:100,
|
||||||
maximumWidth:300
|
maximumWidth:300
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: qsTr("Options"),
|
||||||
dataIndex: 'action',
|
dataIndex: 'action',
|
||||||
width:160,
|
width:160,
|
||||||
minimumWidth:160,
|
minimumWidth:160,
|
||||||
|
@ -528,6 +528,8 @@ FluContentPage{
|
||||||
itemCount: 100000
|
itemCount: 100000
|
||||||
pageButtonCount: 7
|
pageButtonCount: 7
|
||||||
__itemPerPage: 1000
|
__itemPerPage: 1000
|
||||||
|
previousText: qsTr("<Previous")
|
||||||
|
nextText: qsTr("Next>")
|
||||||
onRequestPage:
|
onRequestPage:
|
||||||
(page,count)=> {
|
(page,count)=> {
|
||||||
table_view.closeEditor()
|
table_view.closeEditor()
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Text"
|
title: qsTr("Text")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -16,7 +16,7 @@ FluScrollablePage{
|
||||||
paddings: 10
|
paddings: 10
|
||||||
|
|
||||||
FluCopyableText{
|
FluCopyableText{
|
||||||
text: "这是一个可以支持复制的Text"
|
text: qsTr("This is a text that can be copied")
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ FluScrollablePage{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: -1
|
Layout.topMargin: -1
|
||||||
code:'FluCopyableText{
|
code:'FluCopyableText{
|
||||||
text:"这是一个可以支持复制的Text"
|
text: qsTr("This is a text that can be copied")
|
||||||
}'
|
}'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,16 +7,13 @@ import "../component"
|
||||||
import "../viewmodel"
|
import "../viewmodel"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
title:"TextBox"
|
|
||||||
|
title: qsTr("TextBox")
|
||||||
|
|
||||||
TextBoxViewModel{
|
TextBoxViewModel{
|
||||||
id:viewModel
|
id:viewModel
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onDestruction: {
|
|
||||||
console.debug("T_TextBox页面销毁了")
|
|
||||||
}
|
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
height: 68
|
height: 68
|
||||||
|
@ -24,10 +21,10 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
|
|
||||||
FluTextBox{
|
FluTextBox{
|
||||||
placeholderText: "单行输入框"
|
placeholderText: qsTr("Single-line Input Box")
|
||||||
disabled:text_box_switch.checked
|
disabled: text_box_switch.checked
|
||||||
cleanEnabled: true
|
cleanEnabled: true
|
||||||
text:viewModel.text1
|
text: viewModel.text1
|
||||||
onTextChanged: {
|
onTextChanged: {
|
||||||
viewModel.text1 = text
|
viewModel.text1 = text
|
||||||
}
|
}
|
||||||
|
@ -38,19 +35,19 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:text_box_switch
|
id: text_box_switch
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
right: parent.right
|
right: parent.right
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: -1
|
Layout.topMargin: -1
|
||||||
code:'FluTextBox{
|
code:'FluTextBox{
|
||||||
placeholderText:"单行输入框"
|
placeholderText: qsTr("Single-line Input Box")
|
||||||
}'
|
}'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,7 +58,7 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
|
|
||||||
FluPasswordBox{
|
FluPasswordBox{
|
||||||
placeholderText: "请输入密码"
|
placeholderText: qsTr("Please enter your password")
|
||||||
disabled:password_box_switch.checked
|
disabled:password_box_switch.checked
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
|
@ -74,14 +71,14 @@ FluScrollablePage{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
right: parent.right
|
right: parent.right
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: -1
|
Layout.topMargin: -1
|
||||||
code:'FluPasswordBox{
|
code:'FluPasswordBox{
|
||||||
placeholderText:"请输入密码"
|
placeholderText: qsTr("Please enter your password")
|
||||||
}'
|
}'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,13 +90,13 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
|
|
||||||
FluMultilineTextBox{
|
FluMultilineTextBox{
|
||||||
id:multiine_textbox
|
id: multiine_textbox
|
||||||
placeholderText: "多行输入框"
|
placeholderText: qsTr("Multi-line Input Box")
|
||||||
text:viewModel.text2
|
text:viewModel.text2
|
||||||
onTextChanged: {
|
onTextChanged: {
|
||||||
viewModel.text2 = text
|
viewModel.text2 = text
|
||||||
}
|
}
|
||||||
disabled:text_box_multi_switch.checked
|
disabled: text_box_multi_switch.checked
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
left: parent.left
|
left: parent.left
|
||||||
|
@ -112,14 +109,14 @@ FluScrollablePage{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
right: parent.right
|
right: parent.right
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: -1
|
Layout.topMargin: -1
|
||||||
code:'FluMultilineTextBox{
|
code:'FluMultilineTextBox{
|
||||||
placeholderText:"多行输入框"
|
placeholderText: qsTr("Multi-line Input Box")
|
||||||
}'
|
}'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,9 +126,9 @@ FluScrollablePage{
|
||||||
paddings: 10
|
paddings: 10
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
FluAutoSuggestBox{
|
FluAutoSuggestBox{
|
||||||
placeholderText: "AutoSuggestBox"
|
placeholderText: qsTr("AutoSuggestBox")
|
||||||
items:generateRandomNames(100)
|
items: generateRandomNames(100)
|
||||||
disabled:text_box_suggest_switch.checked
|
disabled: text_box_suggest_switch.checked
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
left: parent.left
|
left: parent.left
|
||||||
|
@ -143,14 +140,14 @@ FluScrollablePage{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
right: parent.right
|
right: parent.right
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: -1
|
Layout.topMargin: -1
|
||||||
code:'FluAutoSuggestBox{
|
code:'FluAutoSuggestBox{
|
||||||
placeholderText:"AutoSuggestBox"
|
placeholderText: qsTr("AutoSuggestBox")
|
||||||
}'
|
}'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,12 +164,12 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:spin_box_switch
|
id: spin_box_switch
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
right: parent.right
|
right: parent.right
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
|
|
@ -8,8 +8,8 @@ import "../component"
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
property var colorData: [FluColors.Yellow,FluColors.Orange,FluColors.Red,FluColors.Magenta,FluColors.Purple,FluColors.Blue,FluColors.Teal,FluColors.Green]
|
property var colorData: [FluColors.Yellow,FluColors.Orange,FluColors.Red,FluColors.Magenta,FluColors.Purple,FluColors.Blue,FluColors.Teal,FluColors.Green]
|
||||||
id:root
|
id: root
|
||||||
title:"Theme"
|
title: qsTr("Theme")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -23,7 +23,7 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"主题颜色"
|
text: qsTr("Theme colors")
|
||||||
Layout.topMargin: 10
|
Layout.topMargin: 10
|
||||||
}
|
}
|
||||||
RowLayout{
|
RowLayout{
|
||||||
|
@ -58,7 +58,7 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 10
|
Layout.topMargin: 10
|
||||||
spacing: 10
|
spacing: 10
|
||||||
FluText{
|
FluText{
|
||||||
text:"自定义主题颜色"
|
text: qsTr("Customize the Theme Color")
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
FluColorPicker{
|
FluColorPicker{
|
||||||
|
@ -84,7 +84,7 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"夜间模式"
|
text: qsTr("Dark Mode")
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
|
@ -99,7 +99,7 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"native文本渲染"
|
text: qsTr("Native Text")
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
|
@ -110,7 +110,7 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"开启动画效果"
|
text: qsTr("Open Animation")
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"TimePicker"
|
title: qsTr("TimePicker")
|
||||||
launchMode: FluPageType.SingleInstance
|
launchMode: FluPageType.SingleInstance
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -23,11 +23,17 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
text:"hourFormat=FluTimePickerType.H"
|
text: qsTr("hourFormat=FluTimePickerType.H")
|
||||||
}
|
}
|
||||||
|
|
||||||
FluTimePicker{
|
FluTimePicker{
|
||||||
current: new Date()
|
current: new Date()
|
||||||
|
amText: qsTr("AM")
|
||||||
|
pmText: qsTr("PM")
|
||||||
|
hourText: qsTr("Hour")
|
||||||
|
minuteText: qsTr("Minute")
|
||||||
|
cancelText: qsTr("Cancel")
|
||||||
|
okText: qsTr("OK")
|
||||||
onAccepted: {
|
onAccepted: {
|
||||||
showSuccess(current.toLocaleTimeString(Qt.locale("de_DE")))
|
showSuccess(current.toLocaleTimeString(Qt.locale("de_DE")))
|
||||||
}
|
}
|
||||||
|
@ -57,11 +63,17 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
text:"hourFormat=FluTimePickerType.HH"
|
text: qsTr("hourFormat=FluTimePickerType.HH")
|
||||||
}
|
}
|
||||||
|
|
||||||
FluTimePicker{
|
FluTimePicker{
|
||||||
hourFormat:FluTimePickerType.HH
|
hourFormat:FluTimePickerType.HH
|
||||||
|
amText: qsTr("AM")
|
||||||
|
pmText: qsTr("PM")
|
||||||
|
hourText: qsTr("Hour")
|
||||||
|
minuteText: qsTr("Minute")
|
||||||
|
cancelText: qsTr("Cancel")
|
||||||
|
okText: qsTr("OK")
|
||||||
onAccepted: {
|
onAccepted: {
|
||||||
showSuccess(current.toLocaleTimeString(Qt.locale("de_DE")))
|
showSuccess(current.toLocaleTimeString(Qt.locale("de_DE")))
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Timeline"
|
title: qsTr("Timeline")
|
||||||
|
|
||||||
Component{
|
Component{
|
||||||
id:com_dot
|
id:com_dot
|
||||||
|
@ -23,7 +23,7 @@ FluScrollablePage{
|
||||||
Component{
|
Component{
|
||||||
id:com_lable
|
id:com_lable
|
||||||
FluText{
|
FluText{
|
||||||
wrapMode: Text.WrapAnywhere
|
wrapMode: Text.WordWrap
|
||||||
font.bold: true
|
font.bold: true
|
||||||
horizontalAlignment: isRight ? Qt.AlignRight : Qt.AlignLeft
|
horizontalAlignment: isRight ? Qt.AlignRight : Qt.AlignLeft
|
||||||
text: modelData.lable
|
text: modelData.lable
|
||||||
|
@ -41,7 +41,7 @@ FluScrollablePage{
|
||||||
Component{
|
Component{
|
||||||
id:com_text
|
id:com_text
|
||||||
FluText{
|
FluText{
|
||||||
wrapMode: Text.WrapAnywhere
|
wrapMode: Text.WordWrap
|
||||||
horizontalAlignment: isRight ? Qt.AlignRight : Qt.AlignLeft
|
horizontalAlignment: isRight ? Qt.AlignRight : Qt.AlignLeft
|
||||||
text: modelData.text
|
text: modelData.text
|
||||||
font.bold: true
|
font.bold: true
|
||||||
|
@ -108,18 +108,18 @@ FluScrollablePage{
|
||||||
spacing: 20
|
spacing: 20
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
FluTextBox{
|
FluTextBox{
|
||||||
id:text_box
|
id: text_box
|
||||||
text:"Technical testing 2015-09-01"
|
text: "Technical testing 2015-09-01"
|
||||||
Layout.preferredWidth: 240
|
Layout.preferredWidth: 240
|
||||||
}
|
}
|
||||||
FluFilledButton{
|
FluFilledButton{
|
||||||
text:"Append"
|
text: qsTr("Append")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
list_model.append({text:text_box.text})
|
list_model.append({text:text_box.text})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluFilledButton{
|
FluFilledButton{
|
||||||
text:"clear"
|
text: qsTr("clear")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
list_model.clear()
|
list_model.clear()
|
||||||
}
|
}
|
||||||
|
@ -132,25 +132,25 @@ FluScrollablePage{
|
||||||
text:"mode:"
|
text:"mode:"
|
||||||
}
|
}
|
||||||
FluDropDownButton{
|
FluDropDownButton{
|
||||||
id:btn_mode
|
id: btn_mode
|
||||||
Layout.preferredWidth: 100
|
Layout.preferredWidth: 100
|
||||||
text:"Alternate"
|
text: "Alternate"
|
||||||
FluMenuItem{
|
FluMenuItem{
|
||||||
text:"Left"
|
text: "Left"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
btn_mode.text = text
|
btn_mode.text = text
|
||||||
time_line.mode = FluTimelineType.Left
|
time_line.mode = FluTimelineType.Left
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluMenuItem{
|
FluMenuItem{
|
||||||
text:"Right"
|
text: "Right"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
btn_mode.text = text
|
btn_mode.text = text
|
||||||
time_line.mode = FluTimelineType.Right
|
time_line.mode = FluTimelineType.Right
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluMenuItem{
|
FluMenuItem{
|
||||||
text:"Alternate"
|
text: "Alternate"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
btn_mode.text = text
|
btn_mode.text = text
|
||||||
time_line.mode = FluTimelineType.Alternate
|
time_line.mode = FluTimelineType.Alternate
|
||||||
|
@ -160,12 +160,12 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluTimeline{
|
FluTimeline{
|
||||||
id:time_line
|
id: time_line
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
Layout.bottomMargin: 20
|
Layout.bottomMargin: 20
|
||||||
mode: FluTimelineType.Alternate
|
mode: FluTimelineType.Alternate
|
||||||
model:list_model
|
model: list_model
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"ToggleSwitch"
|
title: qsTr("ToggleSwitch")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -22,21 +22,21 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
disabled: toggle_switch.checked
|
disabled: toggle_switch.checked
|
||||||
text:"Right"
|
text: qsTr("Right")
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
disabled: toggle_switch.checked
|
disabled: toggle_switch.checked
|
||||||
text:"Left"
|
text: qsTr("Left")
|
||||||
textRight: false
|
textRight: false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:toggle_switch
|
id: toggle_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
|
|
@ -7,11 +7,11 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Tooltip"
|
title: qsTr("Tooltip")
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
text:"鼠标悬停不动,弹出Tooltip"
|
text: qsTr("Hover over Tultip and it pops up")
|
||||||
}
|
}
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
|
@ -27,14 +27,14 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"FluIconButton的text属性自带Tooltip效果"
|
text: qsTr("Text properties of FluIconButton support the Tooltip pop-up window by default")
|
||||||
}
|
}
|
||||||
FluIconButton{
|
FluIconButton{
|
||||||
iconSource:FluentIcons.ChromeCloseContrast
|
iconSource:FluentIcons.ChromeCloseContrast
|
||||||
iconSize: 15
|
iconSize: 15
|
||||||
text:"删除"
|
text: qsTr("Delete")
|
||||||
onClicked:{
|
onClicked:{
|
||||||
showSuccess("点击IconButton")
|
showSuccess(qsTr("Click IconButton"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,9 +45,9 @@ FluScrollablePage{
|
||||||
code:'FluIconButton{
|
code:'FluIconButton{
|
||||||
iconSource:FluentIcons.ChromeCloseContrast
|
iconSource:FluentIcons.ChromeCloseContrast
|
||||||
iconSize: 15
|
iconSize: 15
|
||||||
text:"删除"
|
text: qsTr("Delete")
|
||||||
onClicked:{
|
onClicked:{
|
||||||
showSuccess("点击IconButton")
|
showSuccess(qsTr("Click IconButton"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'
|
'
|
||||||
|
@ -66,13 +66,13 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"给一个Button添加Tooltip效果"
|
text: qsTr("Add a Tooltip pop-up to a Button")
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
id:button_1
|
id:button_1
|
||||||
text:"删除"
|
text: qsTr("Delete")
|
||||||
onClicked:{
|
onClicked:{
|
||||||
showSuccess("点击一个Button")
|
showSuccess(qsTr("Click Button"))
|
||||||
}
|
}
|
||||||
FluTooltip{
|
FluTooltip{
|
||||||
visible: button_1.hovered
|
visible: button_1.hovered
|
||||||
|
@ -86,15 +86,15 @@ FluScrollablePage{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: -1
|
Layout.topMargin: -1
|
||||||
code:'FluButton{
|
code:'FluButton{
|
||||||
id:button_1
|
id: button_1
|
||||||
text:"删除"
|
text: qsTr("Delete")
|
||||||
FluTooltip{
|
FluTooltip{
|
||||||
visible: button_1.hovered
|
visible: button_1.hovered
|
||||||
text:button_1.text
|
text:button_1.text
|
||||||
delay: 1000
|
delay: 1000
|
||||||
}
|
}
|
||||||
onClicked:{
|
onClicked:{
|
||||||
showSuccess("点击一个Button")
|
showSuccess(qsTr("Click Button"))
|
||||||
}
|
}
|
||||||
}'
|
}'
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,14 +7,17 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Tour"
|
title: qsTr("Tour")
|
||||||
|
|
||||||
FluTour{
|
FluTour{
|
||||||
id:tour
|
id:tour
|
||||||
|
finishText: qsTr("Finish")
|
||||||
|
nextText: qsTr("Next")
|
||||||
|
previousText: qsTr("Previous")
|
||||||
steps:[
|
steps:[
|
||||||
{title:"Upload File",description: "Put your files here.",target:()=>btn_upload},
|
{title:qsTr("Upload File"),description: qsTr("Put your files here."),target:()=>btn_upload},
|
||||||
{title:"Save",description: "Save your changes.",target:()=>btn_save},
|
{title:qsTr("Save"),description: qsTr("Save your changes."),target:()=>btn_save},
|
||||||
{title:"Other Actions",description: "Click to see other actions.",target:()=>btn_more}
|
{title:qsTr("Other Actions"),description: qsTr("Click to see other actions."),target:()=>btn_more}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,7 +32,7 @@ FluScrollablePage{
|
||||||
top: parent.top
|
top: parent.top
|
||||||
topMargin: 14
|
topMargin: 14
|
||||||
}
|
}
|
||||||
text:"Begin Tour"
|
text: qsTr("Begin Tour")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
tour.open()
|
tour.open()
|
||||||
}
|
}
|
||||||
|
@ -42,24 +45,24 @@ FluScrollablePage{
|
||||||
topMargin: 60
|
topMargin: 60
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
id:btn_upload
|
id: btn_upload
|
||||||
text:"Upload"
|
text: qsTr("Upload")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showInfo("Upload")
|
showInfo(qsTr("Upload"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluFilledButton{
|
FluFilledButton{
|
||||||
id:btn_save
|
id: btn_save
|
||||||
text:"Save"
|
text: qsTr("Save")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showInfo("Save")
|
showInfo(qsTr("Save"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluIconButton{
|
FluIconButton{
|
||||||
id:btn_more
|
id: btn_more
|
||||||
iconSource: FluentIcons.More
|
iconSource: FluentIcons.More
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showInfo("More")
|
showInfo(qsTr("More"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluContentPage {
|
FluContentPage {
|
||||||
|
|
||||||
title:"TreeView"
|
title: qsTr("TreeView")
|
||||||
|
|
||||||
function treeData(){
|
function treeData(){
|
||||||
const dig = (path = '0', level = 4) => {
|
const dig = (path = '0', level = 4) => {
|
||||||
|
@ -29,7 +29,7 @@ FluContentPage {
|
||||||
}
|
}
|
||||||
|
|
||||||
Column{
|
Column{
|
||||||
id:layout_column
|
id: layout_column
|
||||||
spacing: 12
|
spacing: 12
|
||||||
width: 300
|
width: 300
|
||||||
anchors{
|
anchors{
|
||||||
|
@ -42,21 +42,21 @@ FluContentPage {
|
||||||
}
|
}
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
text:"共计%1条数据,当前显示的%2条数据".arg(tree_view.count()).arg(tree_view.visibleCount())
|
text: qsTr("Total %1 data, %2 data currently displayed").arg(tree_view.count()).arg(tree_view.visibleCount())
|
||||||
}
|
}
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
text:"共计选中%1条数据".arg(tree_view.selectionModel().length)
|
text: qsTr("A total of %1 data items are selected").arg(tree_view.selectionModel().length)
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout{
|
RowLayout{
|
||||||
spacing: 10
|
spacing: 10
|
||||||
FluText{
|
FluText{
|
||||||
text:"cellHeight:"
|
text: "cellHeight:"
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
FluSlider{
|
FluSlider{
|
||||||
id:slider_cell_height
|
id: slider_cell_height
|
||||||
value: 30
|
value: 30
|
||||||
from: 30
|
from: 30
|
||||||
to:100
|
to:100
|
||||||
|
@ -65,39 +65,39 @@ FluContentPage {
|
||||||
RowLayout{
|
RowLayout{
|
||||||
spacing: 10
|
spacing: 10
|
||||||
FluText{
|
FluText{
|
||||||
text:"depthPadding:"
|
text: "depthPadding:"
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
FluSlider{
|
FluSlider{
|
||||||
id:slider_depth_padding
|
id: slider_depth_padding
|
||||||
value: 30
|
value: 30
|
||||||
from: 30
|
from: 30
|
||||||
to:100
|
to:100
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:switch_showline
|
id: switch_showline
|
||||||
text:"showLine"
|
text:"showLine"
|
||||||
checked: false
|
checked: false
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:switch_draggable
|
id: switch_draggable
|
||||||
text:"draggable"
|
text:"draggable"
|
||||||
checked: false
|
checked: false
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:switch_checkable
|
id: switch_checkable
|
||||||
text:"checkable"
|
text:"checkable"
|
||||||
checked: false
|
checked: false
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"all expand"
|
text: "all expand"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
tree_view.allExpand()
|
tree_view.allExpand()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"all collapse"
|
text: "all collapse"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
tree_view.allCollapse()
|
tree_view.allCollapse()
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ FluContentPage {
|
||||||
|
|
||||||
property real textScale: 1
|
property real textScale: 1
|
||||||
|
|
||||||
title: "Typography"
|
title: qsTr("Typography")
|
||||||
rightPadding: 10
|
rightPadding: 10
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluContentPage{
|
FluContentPage{
|
||||||
|
|
||||||
title:"Watermark"
|
title: qsTr("Watermark")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -23,12 +23,12 @@ FluContentPage{
|
||||||
spacing: 10
|
spacing: 10
|
||||||
Layout.topMargin: 14
|
Layout.topMargin: 14
|
||||||
FluText{
|
FluText{
|
||||||
text:"text:"
|
text: "text:"
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
FluTextBox{
|
FluTextBox{
|
||||||
id:text_box
|
id: text_box
|
||||||
text:"会磨刀的小猪"
|
text: "会磨刀的小猪"
|
||||||
Layout.preferredWidth: 240
|
Layout.preferredWidth: 240
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,11 +36,11 @@ FluContentPage{
|
||||||
RowLayout{
|
RowLayout{
|
||||||
spacing: 10
|
spacing: 10
|
||||||
FluText{
|
FluText{
|
||||||
text:"textSize:"
|
text: "textSize:"
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
FluSlider{
|
FluSlider{
|
||||||
id:slider_text_size
|
id: slider_text_size
|
||||||
value: 20
|
value: 20
|
||||||
from: 13
|
from: 13
|
||||||
to:50
|
to:50
|
||||||
|
@ -49,7 +49,7 @@ FluContentPage{
|
||||||
RowLayout{
|
RowLayout{
|
||||||
spacing: 10
|
spacing: 10
|
||||||
FluText{
|
FluText{
|
||||||
text:"gapX:"
|
text: "gapX:"
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
FluSlider{
|
FluSlider{
|
||||||
|
@ -60,18 +60,18 @@ FluContentPage{
|
||||||
RowLayout{
|
RowLayout{
|
||||||
spacing: 10
|
spacing: 10
|
||||||
FluText{
|
FluText{
|
||||||
text:"gapY:"
|
text: "gapY:"
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
FluSlider{
|
FluSlider{
|
||||||
id:slider_gap_y
|
id: slider_gap_y
|
||||||
value: 100
|
value: 100
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RowLayout{
|
RowLayout{
|
||||||
spacing: 10
|
spacing: 10
|
||||||
FluText{
|
FluText{
|
||||||
text:"offsetX:"
|
text: "offsetX:"
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
FluSlider{
|
FluSlider{
|
||||||
|
@ -82,22 +82,22 @@ FluContentPage{
|
||||||
RowLayout{
|
RowLayout{
|
||||||
spacing: 10
|
spacing: 10
|
||||||
FluText{
|
FluText{
|
||||||
text:"offsetY:"
|
text: "offsetY:"
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
FluSlider{
|
FluSlider{
|
||||||
id:slider_offset_y
|
id: slider_offset_y
|
||||||
value: 50
|
value: 50
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RowLayout{
|
RowLayout{
|
||||||
spacing: 10
|
spacing: 10
|
||||||
FluText{
|
FluText{
|
||||||
text:"rotate:"
|
text: "rotate:"
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
FluSlider{
|
FluSlider{
|
||||||
id:slider_rotate
|
id: slider_rotate
|
||||||
value: 22
|
value: 22
|
||||||
from: 0
|
from: 0
|
||||||
to:360
|
to:360
|
||||||
|
@ -106,18 +106,18 @@ FluContentPage{
|
||||||
RowLayout{
|
RowLayout{
|
||||||
spacing: 10
|
spacing: 10
|
||||||
FluText{
|
FluText{
|
||||||
text:"textColor:"
|
text: "textColor:"
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
FluColorPicker{
|
FluColorPicker{
|
||||||
id:color_picker
|
id: color_picker
|
||||||
current: Qt.rgba(0,0,0,0.1)
|
current: Qt.rgba(0,0,0,0.1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluWatermark{
|
FluWatermark{
|
||||||
id:water_mark
|
id: water_mark
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
text:text_box.text
|
text:text_box.text
|
||||||
textColor: color_picker.current
|
textColor: color_picker.current
|
||||||
|
|
|
@ -8,7 +8,7 @@ import "../component"
|
||||||
FluWindow {
|
FluWindow {
|
||||||
|
|
||||||
id:window
|
id:window
|
||||||
title:"友情提示"
|
title: qsTr("Friendly Reminder")
|
||||||
width: 300
|
width: 300
|
||||||
height: 400
|
height: 400
|
||||||
fixSize: true
|
fixSize: true
|
||||||
|
@ -37,11 +37,15 @@ FluWindow {
|
||||||
FluText{
|
FluText{
|
||||||
id:text_info
|
id:text_info
|
||||||
anchors{
|
anchors{
|
||||||
horizontalCenter: parent.horizontalCenter
|
|
||||||
top: parent.top
|
top: parent.top
|
||||||
topMargin: 240
|
topMargin: 240
|
||||||
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
|
leftMargin: 10
|
||||||
|
rightMargin: 10
|
||||||
}
|
}
|
||||||
text:"发生意外错误\n给您带来的不便,我们深表歉意"
|
wrapMode: Text.WordWrap
|
||||||
|
text: qsTr("We apologize for the inconvenience caused by an unexpected error")
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
}
|
}
|
||||||
|
@ -53,7 +57,7 @@ FluWindow {
|
||||||
bottomMargin: 20
|
bottomMargin: 20
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"日志上报"
|
text: qsTr("Report Logs")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
FluTools.showFileInFolder(crashFilePath)
|
FluTools.showFileInFolder(crashFilePath)
|
||||||
}
|
}
|
||||||
|
@ -63,7 +67,7 @@ FluWindow {
|
||||||
height: 1
|
height: 1
|
||||||
}
|
}
|
||||||
FluFilledButton{
|
FluFilledButton{
|
||||||
text:"重启程序"
|
text: qsTr("Restart Program")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
FluApp.exit(931)
|
FluApp.exit(931)
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,115 @@
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Controls
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import FluentUI
|
||||||
|
import Qt.labs.platform
|
||||||
|
import "../component"
|
||||||
|
|
||||||
|
FluWindow {
|
||||||
|
|
||||||
|
id:window
|
||||||
|
title:qsTr("FluentUI Initalizr")
|
||||||
|
width: 600
|
||||||
|
height: 400
|
||||||
|
fixSize: true
|
||||||
|
// modality: Qt.ApplicationModal
|
||||||
|
launchMode: FluWindowType.SingleTask
|
||||||
|
showStayTop: false
|
||||||
|
|
||||||
|
Connections{
|
||||||
|
target: InitalizrHelper
|
||||||
|
function onError(message){
|
||||||
|
showError(message)
|
||||||
|
}
|
||||||
|
function onSuccess(){
|
||||||
|
showSuccess("创建成功")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FluText{
|
||||||
|
id:text_title
|
||||||
|
text:qsTr("FluentUI Initalizr")
|
||||||
|
font: FluTextStyle.Title
|
||||||
|
anchors{
|
||||||
|
left: parent.left
|
||||||
|
top: parent.top
|
||||||
|
leftMargin: 20
|
||||||
|
topMargin: 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Column{
|
||||||
|
spacing: 14
|
||||||
|
anchors{
|
||||||
|
left: parent.left
|
||||||
|
top: text_title.bottom
|
||||||
|
leftMargin: 20
|
||||||
|
topMargin: 20
|
||||||
|
}
|
||||||
|
FluTextBox{
|
||||||
|
id:text_box_name
|
||||||
|
width: 180
|
||||||
|
placeholderText: qsTr("Name")
|
||||||
|
focus: true
|
||||||
|
}
|
||||||
|
Row{
|
||||||
|
spacing: 8
|
||||||
|
FluTextBox{
|
||||||
|
id:text_box_path
|
||||||
|
width: 300
|
||||||
|
placeholderText: qsTr("Create In")
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
Component.onCompleted: {
|
||||||
|
text = FluTools.toLocalPath(StandardPaths.standardLocations(StandardPaths.DocumentsLocation)[0])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FluButton{
|
||||||
|
text:qsTr("Browse")
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
onClicked: {
|
||||||
|
folder_dialog.open()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FolderDialog{
|
||||||
|
id:folder_dialog
|
||||||
|
folder: StandardPaths.standardLocations(StandardPaths.DocumentsLocation)[0]
|
||||||
|
onAccepted: {
|
||||||
|
text_box_path.text = FluTools.toLocalPath(currentFolder)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle{
|
||||||
|
id:layout_actions
|
||||||
|
width: parent.width
|
||||||
|
height: 60
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
color: FluTheme.backgroundColor
|
||||||
|
Row{
|
||||||
|
height: parent.height
|
||||||
|
spacing: 20
|
||||||
|
anchors{
|
||||||
|
right: parent.right
|
||||||
|
rightMargin: 20
|
||||||
|
}
|
||||||
|
FluButton{
|
||||||
|
text:qsTr("Cancel")
|
||||||
|
width: 120
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
onClicked: {
|
||||||
|
window.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FluFilledButton{
|
||||||
|
text:qsTr("Create")
|
||||||
|
width: 120
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
onClicked: {
|
||||||
|
InitalizrHelper.generate(text_box_name.text,text_box_path.text)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,7 +8,7 @@ import "../component"
|
||||||
FluWindow {
|
FluWindow {
|
||||||
|
|
||||||
id:window
|
id:window
|
||||||
title:"热加载"
|
title: qsTr("Hot Loader")
|
||||||
width: 800
|
width: 800
|
||||||
height: 600
|
height: 600
|
||||||
minimumWidth: 520
|
minimumWidth: 520
|
||||||
|
@ -32,7 +32,7 @@ FluWindow {
|
||||||
text:loader.itemLodaer().sourceComponent.errorString()
|
text:loader.itemLodaer().sourceComponent.errorString()
|
||||||
color:"red"
|
color:"red"
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
wrapMode: Text.WrapAnywhere
|
wrapMode: Text.WordWrap
|
||||||
padding: 20
|
padding: 20
|
||||||
verticalAlignment: Qt.AlignVCenter
|
verticalAlignment: Qt.AlignVCenter
|
||||||
horizontalAlignment: Qt.AlignHCenter
|
horizontalAlignment: Qt.AlignHCenter
|
||||||
|
@ -40,7 +40,7 @@ FluWindow {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"拖入qml文件"
|
text: qsTr("Drag in a qml file")
|
||||||
font.pixelSize: 26
|
font.pixelSize: 26
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
visible: !loader.itemLodaer().item && loader.statusMode === FluStatusLayoutType.Success
|
visible: !loader.itemLodaer().item && loader.statusMode === FluStatusLayoutType.Success
|
||||||
|
|
|
@ -6,8 +6,8 @@ import "../component"
|
||||||
|
|
||||||
FluWindow {
|
FluWindow {
|
||||||
|
|
||||||
id:window
|
id: window
|
||||||
title:"登录"
|
title: qsTr("Login")
|
||||||
width: 400
|
width: 400
|
||||||
height: 400
|
height: 400
|
||||||
fixSize: true
|
fixSize: true
|
||||||
|
@ -26,38 +26,34 @@ FluWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
FluAutoSuggestBox{
|
FluAutoSuggestBox{
|
||||||
id:textbox_uesrname
|
id: textbox_uesrname
|
||||||
items:[{title:"Admin"},{title:"User"}]
|
items:[{title:"Admin"},{title:"User"}]
|
||||||
placeholderText: "请输入账号"
|
placeholderText: qsTr("Please enter the account")
|
||||||
Layout.preferredWidth: 260
|
Layout.preferredWidth: 260
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
FluTextBox{
|
FluTextBox{
|
||||||
id:textbox_password
|
id: textbox_password
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
Layout.preferredWidth: 260
|
Layout.preferredWidth: 260
|
||||||
placeholderText: "请输入密码"
|
placeholderText: qsTr("Please enter your password")
|
||||||
echoMode:TextInput.Password
|
echoMode:TextInput.Password
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
FluFilledButton{
|
FluFilledButton{
|
||||||
text:"登录"
|
text: qsTr("Login")
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
onClicked:{
|
onClicked:{
|
||||||
if(textbox_password.text === ""){
|
if(textbox_password.text === ""){
|
||||||
showError("请随便输入一个密码")
|
showError(qsTr("Please feel free to enter a password"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
onResult({password:textbox_password.text})
|
onResult({password:textbox_password.text})
|
||||||
window.close()
|
window.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ FluWindow {
|
||||||
fitsAppBarWindows: true
|
fitsAppBarWindows: true
|
||||||
appBar: FluAppBar {
|
appBar: FluAppBar {
|
||||||
height: 30
|
height: 30
|
||||||
darkText: Lang.dark_mode
|
darkText: qsTr("Dark Mode")
|
||||||
showDark: true
|
showDark: true
|
||||||
darkClickListener:(button)=>handleDarkChanged(button)
|
darkClickListener:(button)=>handleDarkChanged(button)
|
||||||
closeClickListener: ()=>{dialog_close.open()}
|
closeClickListener: ()=>{dialog_close.open()}
|
||||||
|
@ -85,7 +85,7 @@ FluWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer{
|
Timer{
|
||||||
id:timer_window_hide_delay
|
id: timer_window_hide_delay
|
||||||
interval: 150
|
interval: 150
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
window.hide()
|
window.hide()
|
||||||
|
@ -93,29 +93,29 @@ FluWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
FluContentDialog{
|
FluContentDialog{
|
||||||
id:dialog_close
|
id: dialog_close
|
||||||
title:"退出"
|
title: qsTr("Quit")
|
||||||
message:"确定要退出程序吗?"
|
message: qsTr("Are you sure you want to exit the program?")
|
||||||
negativeText:"最小化"
|
negativeText: qsTr("Minimize")
|
||||||
buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.NeutralButton | FluContentDialogType.PositiveButton
|
buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.NeutralButton | FluContentDialogType.PositiveButton
|
||||||
onNegativeClicked: {
|
onNegativeClicked: {
|
||||||
system_tray.showMessage("友情提示","FluentUI已隐藏至托盘,点击托盘可再次激活窗口");
|
system_tray.showMessage(qsTr("Friendly Reminder"),qsTr("FluentUI is hidden from the tray, click on the tray to activate the window again"));
|
||||||
timer_window_hide_delay.restart()
|
timer_window_hide_delay.restart()
|
||||||
}
|
}
|
||||||
positiveText:"退出"
|
positiveText: qsTr("Quit")
|
||||||
neutralText:"取消"
|
neutralText: qsTr("Cancel")
|
||||||
onPositiveClicked:{
|
onPositiveClicked:{
|
||||||
FluApp.exit(0)
|
FluApp.exit(0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Component{
|
Component{
|
||||||
id:nav_item_right_menu
|
id: nav_item_right_menu
|
||||||
FluMenu{
|
FluMenu{
|
||||||
id:menu
|
id: menu
|
||||||
width: 130
|
width: 130
|
||||||
FluMenuItem{
|
FluMenuItem{
|
||||||
text: "在独立窗口打开"
|
text: qsTr("Open in Separate Window")
|
||||||
visible: true
|
visible: true
|
||||||
onClicked: {
|
onClicked: {
|
||||||
FluApp.navigate("/pageWindow",{title:modelData.title,url:modelData.url})
|
FluApp.navigate("/pageWindow",{title:modelData.title,url:modelData.url})
|
||||||
|
@ -212,7 +212,7 @@ FluWindow {
|
||||||
title:"FluentUI"
|
title:"FluentUI"
|
||||||
onLogoClicked:{
|
onLogoClicked:{
|
||||||
clickCount += 1
|
clickCount += 1
|
||||||
showSuccess("点击%1次".arg(clickCount))
|
showSuccess("%1:%2".arg(qsTr("Click Time")).arg(clickCount))
|
||||||
if(clickCount === 5){
|
if(clickCount === 5){
|
||||||
loader.reload()
|
loader.reload()
|
||||||
flipable.flipped = true
|
flipable.flipped = true
|
||||||
|
@ -222,7 +222,7 @@ FluWindow {
|
||||||
autoSuggestBox:FluAutoSuggestBox{
|
autoSuggestBox:FluAutoSuggestBox{
|
||||||
iconSource: FluentIcons.Search
|
iconSource: FluentIcons.Search
|
||||||
items: ItemsOriginal.getSearchData()
|
items: ItemsOriginal.getSearchData()
|
||||||
placeholderText: Lang.search
|
placeholderText: qsTr("Search")
|
||||||
onItemClicked:
|
onItemClicked:
|
||||||
(data)=>{
|
(data)=>{
|
||||||
ItemsOriginal.startPageByItem(data)
|
ItemsOriginal.startPageByItem(data)
|
||||||
|
@ -312,13 +312,16 @@ FluWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
FluTour{
|
FluTour{
|
||||||
id:tour
|
id: tour
|
||||||
|
finishText: qsTr("Finish")
|
||||||
|
nextText: qsTr("Next")
|
||||||
|
previousText: qsTr("Previous")
|
||||||
steps:{
|
steps:{
|
||||||
var data = []
|
var data = []
|
||||||
if(!window.useSystemAppBar){
|
if(!window.useSystemAppBar){
|
||||||
data.push({title:"夜间模式",description: "这里可以切换夜间模式.",target:()=>appBar.buttonDark})
|
data.push({title:qsTr("Dark Mode"),description: qsTr("Here you can switch to night mode."),target:()=>appBar.buttonDark})
|
||||||
}
|
}
|
||||||
data.push({title:"隐藏彩蛋",description: "多点几下试试!!",target:()=>nav_view.imageLogo})
|
data.push({title:qsTr("Hide Easter eggs"),description: qsTr("Try a few more clicks!!"),target:()=>nav_view.imageLogo})
|
||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -328,7 +331,7 @@ FluWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
text:"fps %1".arg(fps_item.fps)
|
text: "fps %1".arg(fps_item.fps)
|
||||||
opacity: 0.3
|
opacity: 0.3
|
||||||
anchors{
|
anchors{
|
||||||
bottom: parent.bottom
|
bottom: parent.bottom
|
||||||
|
@ -341,12 +344,12 @@ FluWindow {
|
||||||
FluContentDialog{
|
FluContentDialog{
|
||||||
property string newVerson
|
property string newVerson
|
||||||
property string body
|
property string body
|
||||||
id:dialog_update
|
id: dialog_update
|
||||||
title:"升级提示"
|
title: qsTr("Upgrade Tips")
|
||||||
message:"FluentUI目前最新版本 "+ newVerson +" -- 当前应用版本 "+AppInfo.version+" \n现在是否去下载新版本?\n\n更新内容:\n"+body
|
message:qsTr("FluentUI is currently up to date ")+ newVerson +qsTr(" -- The current app version") +AppInfo.version+qsTr(" \nNow go and download the new version?\n\nUpdated content: \n")+body
|
||||||
buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
|
buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
|
||||||
negativeText: "取消"
|
negativeText: qsTr("Cancel")
|
||||||
positiveText:"确定"
|
positiveText: qsTr("OK")
|
||||||
onPositiveClicked:{
|
onPositiveClicked:{
|
||||||
Qt.openUrlExternally("https://github.com/zhuzichu520/FluentUI/releases/latest")
|
Qt.openUrlExternally("https://github.com/zhuzichu520/FluentUI/releases/latest")
|
||||||
}
|
}
|
||||||
|
@ -373,14 +376,14 @@ FluWindow {
|
||||||
dialog_update.open()
|
dialog_update.open()
|
||||||
}else{
|
}else{
|
||||||
if(!silent){
|
if(!silent){
|
||||||
showInfo("当前版本已经是最新版")
|
showInfo(qsTr("The current version is already the latest"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onError:
|
onError:
|
||||||
(status,errorString)=>{
|
(status,errorString)=>{
|
||||||
if(!silent){
|
if(!silent){
|
||||||
showError("网络异常!")
|
showError(qsTr("The network is abnormal"))
|
||||||
}
|
}
|
||||||
console.debug(status+";"+errorString)
|
console.debug(status+";"+errorString)
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,13 +2,12 @@ import QtQuick
|
||||||
import QtQuick.Controls
|
import QtQuick.Controls
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import FluentUI
|
import FluentUI
|
||||||
|
|
||||||
import "../component"
|
import "../component"
|
||||||
|
|
||||||
FluWindow {
|
FluWindow {
|
||||||
|
|
||||||
id:window
|
id: window
|
||||||
title:"SingleInstance"
|
title: qsTr("SingleInstance")
|
||||||
width: 500
|
width: 500
|
||||||
height: 600
|
height: 600
|
||||||
fixSize: true
|
fixSize: true
|
||||||
|
@ -23,7 +22,7 @@ FluWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
wrapMode: Text.WrapAnywhere
|
wrapMode: Text.WordWrap
|
||||||
anchors{
|
anchors{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
right: parent.right
|
right: parent.right
|
||||||
|
@ -31,6 +30,6 @@ FluWindow {
|
||||||
rightMargin: 20
|
rightMargin: 20
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"我是一个SingleInstance模式的窗口,如果我存在,我会销毁之前的窗口,并创建一个新窗口"
|
text: qsTr("I'm a SingleInstance window, and if I exist, I'll destroy the previous window and create a new one")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,8 +6,8 @@ import "../component"
|
||||||
|
|
||||||
FluWindow {
|
FluWindow {
|
||||||
|
|
||||||
id:window
|
id: window
|
||||||
title:"SingleTask"
|
title: qsTr("SingleTask")
|
||||||
width: 500
|
width: 500
|
||||||
height: 600
|
height: 600
|
||||||
fixSize: true
|
fixSize: true
|
||||||
|
@ -15,7 +15,7 @@ FluWindow {
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
text:"我是一个SingleTask模式的窗口,如果我存在,我就激活窗口"
|
text: qsTr("I'm a SingleTask mode window, and if I exist, I activate the window")
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ FluWindow {
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
text:"我是一个Standard模式的窗口,每次我都会创建一个新的窗口"
|
text: qsTr("I'm a Standard mode window, and every time I create a new window")
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,13 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Connections{
|
||||||
|
target: TranslateHelper
|
||||||
|
function onCurrentChanged(){
|
||||||
|
SettingsHelper.saveLanguage(TranslateHelper.current)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
FluNetwork.openLog = false
|
FluNetwork.openLog = false
|
||||||
FluNetwork.setInterceptor(function(param){
|
FluNetwork.setInterceptor(function(param){
|
||||||
|
@ -37,6 +44,7 @@ Item {
|
||||||
"/login":"qrc:/example/qml/window/LoginWindow.qml",
|
"/login":"qrc:/example/qml/window/LoginWindow.qml",
|
||||||
"/hotload":"qrc:/example/qml/window/HotloadWindow.qml",
|
"/hotload":"qrc:/example/qml/window/HotloadWindow.qml",
|
||||||
"/crash":"qrc:/example/qml/window/CrashWindow.qml",
|
"/crash":"qrc:/example/qml/window/CrashWindow.qml",
|
||||||
|
"/fluentInitalizr":"qrc:/example/qml/window/FluentInitalizrWindow.qml",
|
||||||
"/singleTaskWindow":"qrc:/example/qml/window/SingleTaskWindow.qml",
|
"/singleTaskWindow":"qrc:/example/qml/window/SingleTaskWindow.qml",
|
||||||
"/standardWindow":"qrc:/example/qml/window/StandardWindow.qml",
|
"/standardWindow":"qrc:/example/qml/window/StandardWindow.qml",
|
||||||
"/singleInstanceWindow":"qrc:/example/qml/window/SingleInstanceWindow.qml",
|
"/singleInstanceWindow":"qrc:/example/qml/window/SingleInstanceWindow.qml",
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Bar Chart"
|
title: qsTr("Bar Chart")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
width: 500
|
width: 500
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Bubble Chart"
|
title: qsTr("Bubble Chart")
|
||||||
|
|
||||||
function randomScalingFactor() {
|
function randomScalingFactor() {
|
||||||
return Math.random().toFixed(1);
|
return Math.random().toFixed(1);
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Line Chart"
|
title: qsTr("Line Chart")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
width: 500
|
width: 500
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Doughnut and Pie Chart"
|
title: qsTr("Pie Chart")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
width: 500
|
width: 500
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"PolarArea Chart"
|
title: qsTr("Polar Area Chart")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
width: 500
|
width: 500
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Radar Chart"
|
title: qsTr("Radar Chart")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
width: 500
|
width: 500
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Scatter Chart"
|
title: qsTr("Scatter Chart")
|
||||||
|
|
||||||
function randomScalingFactor() {
|
function randomScalingFactor() {
|
||||||
return Math.random().toFixed(1);
|
return Math.random().toFixed(1);
|
||||||
|
|
|
@ -8,7 +8,7 @@ FluExpander{
|
||||||
|
|
||||||
id:control
|
id:control
|
||||||
property string code: ""
|
property string code: ""
|
||||||
headerText: "Source"
|
headerText: qsTr("Source")
|
||||||
contentHeight:content.height
|
contentHeight:content.height
|
||||||
focus: false
|
focus: false
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ FluExpander{
|
||||||
}
|
}
|
||||||
onClicked:{
|
onClicked:{
|
||||||
FluTools.clipText(FluTools.html2PlantText(content.text))
|
FluTools.clipText(FluTools.html2PlantText(content.text))
|
||||||
showSuccess("复制成功")
|
showSuccess(qsTr("The Copy is Successful"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,7 +49,6 @@ FluExpander{
|
||||||
}
|
}
|
||||||
|
|
||||||
function highlightQmlCode(code) {
|
function highlightQmlCode(code) {
|
||||||
// 定义 QML 关键字列表
|
|
||||||
var qmlKeywords = [
|
var qmlKeywords = [
|
||||||
"FluTextButton",
|
"FluTextButton",
|
||||||
"FluAppBar",
|
"FluAppBar",
|
||||||
|
|
|
@ -13,7 +13,7 @@ FluObject{
|
||||||
FluPaneItemSeparator{}
|
FluPaneItemSeparator{}
|
||||||
|
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.about
|
title:qsTr("About")
|
||||||
icon:FluentIcons.Contact
|
icon:FluentIcons.Contact
|
||||||
onTapListener:function(){
|
onTapListener:function(){
|
||||||
FluApp.navigate("/about")
|
FluApp.navigate("/about")
|
||||||
|
@ -21,7 +21,7 @@ FluObject{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.settings
|
title:qsTr("Settings")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
icon:FluentIcons.Settings
|
icon:FluentIcons.Settings
|
||||||
url:"qrc:/example/qml/page/T_Settings.qml"
|
url:"qrc:/example/qml/page/T_Settings.qml"
|
||||||
|
|
|
@ -17,14 +17,14 @@ FluObject{
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
id:item_home
|
id:item_home
|
||||||
count: 9
|
count: 9
|
||||||
title:Lang.home
|
title: qsTr("Home")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
infoBadge:FluBadge{
|
infoBadge: FluBadge{
|
||||||
count: item_home.count
|
count: item_home.count
|
||||||
}
|
}
|
||||||
icon:FluentIcons.Home
|
icon: FluentIcons.Home
|
||||||
url:"qrc:/example/qml/page/T_Home.qml"
|
url: "qrc:/example/qml/page/T_Home.qml"
|
||||||
onTap:{
|
onTap: {
|
||||||
if(navigationView.getCurrentUrl()){
|
if(navigationView.getCurrentUrl()){
|
||||||
item_home.count = 0
|
item_home.count = 0
|
||||||
}
|
}
|
||||||
|
@ -33,376 +33,376 @@ FluObject{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:"PaneItemExpander Disabled"
|
title: qsTr("PaneItemExpander Disabled")
|
||||||
iconVisible: false
|
iconVisible: false
|
||||||
disabled: true
|
disabled: true
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
id:item_expander_basic_input
|
id: item_expander_basic_input
|
||||||
title:Lang.basic_input
|
title: qsTr("Basic Input")
|
||||||
icon:FluentIcons.CheckboxComposite
|
icon: FluentIcons.CheckboxComposite
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
id:item_buttons
|
id: item_buttons
|
||||||
count: 99
|
count: 99
|
||||||
infoBadge:FluBadge{
|
infoBadge: FluBadge{
|
||||||
count: item_buttons.count
|
count: item_buttons.count
|
||||||
}
|
}
|
||||||
title:"Buttons"
|
title: qsTr("Buttons")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/Button.png",recentlyUpdated:true,desc:"A control that responds to user input and raisesa Click event."})
|
extra: ({image:"qrc:/example/res/image/control/Button.png",recentlyUpdated:true,desc:qsTr("A control that responds to user input and raisesa Click event.")})
|
||||||
url:"qrc:/example/qml/page/T_Buttons.qml"
|
url: "qrc:/example/qml/page/T_Buttons.qml"
|
||||||
onTap:{
|
onTap: {
|
||||||
item_buttons.count = 0
|
item_buttons.count = 0
|
||||||
navigationView.push(url)
|
navigationView.push(url)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
id:item_text
|
id: item_text
|
||||||
title:"Text"
|
title: qsTr("Text")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
count: 5
|
count: 5
|
||||||
infoBadge:FluBadge{
|
infoBadge: FluBadge{
|
||||||
count: item_text.count
|
count: item_text.count
|
||||||
color: Qt.rgba(82/255,196/255,26/255,1)
|
color: Qt.rgba(82/255,196/255,26/255,1)
|
||||||
}
|
}
|
||||||
url:"qrc:/example/qml/page/T_Text.qml"
|
url: "qrc:/example/qml/page/T_Text.qml"
|
||||||
onTap:{
|
onTap: {
|
||||||
item_text.count = 0
|
item_text.count = 0
|
||||||
navigationView.push(url)
|
navigationView.push(url)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Image"
|
title: qsTr("Image")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Image.qml"
|
url: "qrc:/example/qml/page/T_Image.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Slider"
|
title: qsTr("Slider")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/Slider.png",recentlyUpdated:true,desc:"A control that lets the user select from a rangeof values by moving a Thumb control along atrack."})
|
extra: ({image:"qrc:/example/res/image/control/Slider.png",recentlyUpdated:true,desc:qsTr("A control that lets the user select from a rangeof values by moving a Thumb control along atrack.")})
|
||||||
url:"qrc:/example/qml/page/T_Slider.qml"
|
url: "qrc:/example/qml/page/T_Slider.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"CheckBox"
|
title: qsTr("CheckBox")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/Checkbox.png",recentlyUpdated:true,desc:"A control that a user can select or clear."})
|
extra: ({image:"qrc:/example/res/image/control/Checkbox.png",recentlyUpdated:true,desc:qsTr("A control that a user can select or clear.")})
|
||||||
url:"qrc:/example/qml/page/T_CheckBox.qml"
|
url: "qrc:/example/qml/page/T_CheckBox.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"RadioButton"
|
title: qsTr("RadioButton")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_RadioButton.qml"
|
url: "qrc:/example/qml/page/T_RadioButton.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"ToggleSwitch"
|
title: qsTr("ToggleSwitch")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_ToggleSwitch.qml"
|
url: "qrc:/example/qml/page/T_ToggleSwitch.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"PaneItem Disabled"
|
title: qsTr("PaneItem Disabled")
|
||||||
disabled: true
|
disabled: true
|
||||||
icon: FluentIcons.Error
|
icon: FluentIcons.Error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:Lang.form
|
title: qsTr("Form")
|
||||||
icon:FluentIcons.GridView
|
icon: FluentIcons.GridView
|
||||||
FluPaneItem{
|
FluPaneItem {
|
||||||
title:"TextBox"
|
title: qsTr("TextBox")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_TextBox.qml"
|
url: "qrc:/example/qml/page/T_TextBox.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"TimePicker"
|
title: qsTr("TimePicker")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_TimePicker.qml"
|
url: "qrc:/example/qml/page/T_TimePicker.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"DatePicker"
|
title: qsTr("DatePicker")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_DatePicker.qml"
|
url: "qrc:/example/qml/page/T_DatePicker.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"CalendarPicker"
|
title: qsTr("CalendarPicker")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_CalendarPicker.qml"
|
url: "qrc:/example/qml/page/T_CalendarPicker.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"ColorPicker"
|
title: qsTr("ColorPicker")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_ColorPicker.qml"
|
url: "qrc:/example/qml/page/T_ColorPicker.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"ShortcutPicker"
|
title: qsTr("ShortcutPicker")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_ShortcutPicker.qml"
|
url: "qrc:/example/qml/page/T_ShortcutPicker.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:Lang.surface
|
title: qsTr("Surface")
|
||||||
icon:FluentIcons.SurfaceHub
|
icon: FluentIcons.SurfaceHub
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"InfoBar"
|
title: qsTr("InfoBar")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/InfoBar.png",recentlyUpdated:true,desc:"An inline message to display app-wide statuschange information."})
|
extra: ({image:"qrc:/example/res/image/control/InfoBar.png",recentlyUpdated:true,desc:qsTr("An inline message to display app-wide statuschange information.")})
|
||||||
url:"qrc:/example/qml/page/T_InfoBar.qml"
|
url: "qrc:/example/qml/page/T_InfoBar.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Progress"
|
title: qsTr("Progress")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Progress.qml"
|
url: "qrc:/example/qml/page/T_Progress.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"RatingControl"
|
title: qsTr("RatingControl")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_RatingControl.qml"
|
url: "qrc:/example/qml/page/T_RatingControl.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Badge"
|
title: qsTr("Badge")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Badge.qml"
|
url: "qrc:/example/qml/page/T_Badge.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Rectangle"
|
title: qsTr("Rectangle")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Rectangle.qml"
|
url: "qrc:/example/qml/page/T_Rectangle.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Clip"
|
title: qsTr("Clip")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Clip.qml"
|
url: "qrc:/example/qml/page/T_Clip.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Carousel"
|
title: qsTr("Carousel")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Carousel.qml"
|
url: "qrc:/example/qml/page/T_Carousel.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Expander"
|
title: qsTr("Expander")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Expander.qml"
|
url: "qrc:/example/qml/page/T_Expander.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Watermark"
|
title: qsTr("Watermark")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Watermark.qml"
|
url: "qrc:/example/qml/page/T_Watermark.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:Lang.layout
|
title: qsTr("Layout")
|
||||||
icon:FluentIcons.DockLeft
|
icon: FluentIcons.DockLeft
|
||||||
FluPaneItem{
|
FluPaneItem {
|
||||||
title:"StaggeredLayout"
|
title: qsTr("StaggeredLayout")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_StaggeredLayout.qml"
|
url: "qrc:/example/qml/page/T_StaggeredLayout.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"SplitLayout"
|
title: qsTr("SplitLayout")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_SplitLayout.qml"
|
url: "qrc:/example/qml/page/T_SplitLayout.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"StatusLayout"
|
title: qsTr("StatusLayout")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_StatusLayout.qml"
|
url: "qrc:/example/qml/page/T_StatusLayout.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:Lang.popus
|
title: qsTr("Popus")
|
||||||
icon:FluentIcons.ButtonMenu
|
icon: FluentIcons.ButtonMenu
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Dialog"
|
title: qsTr("Dialog")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Dialog.qml"
|
url: "qrc:/example/qml/page/T_Dialog.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
id:item_combobox
|
id: item_combobox
|
||||||
title:"ComboBox"
|
title: qsTr("ComboBox")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
count: 9
|
count: 9
|
||||||
infoBadge:FluBadge{
|
infoBadge:FluBadge{
|
||||||
count: item_combobox.count
|
count: item_combobox.count
|
||||||
color: Qt.rgba(250/255,173/255,20/255,1)
|
color: Qt.rgba(250/255,173/255,20/255,1)
|
||||||
}
|
}
|
||||||
url:"qrc:/example/qml/page/T_ComboBox.qml"
|
url: "qrc:/example/qml/page/T_ComboBox.qml"
|
||||||
onTap:{
|
onTap: {
|
||||||
item_combobox.count = 0
|
item_combobox.count = 0
|
||||||
navigationView.push("qrc:/example/qml/page/T_ComboBox.qml")
|
navigationView.push("qrc:/example/qml/page/T_ComboBox.qml")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Tooltip"
|
title: qsTr("Tooltip")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Tooltip.qml"
|
url: "qrc:/example/qml/page/T_Tooltip.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Menu"
|
title: qsTr("Menu")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Menu.qml"
|
url: "qrc:/example/qml/page/T_Menu.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:Lang.navigation
|
title: qsTr("Navigation")
|
||||||
icon:FluentIcons.AllApps
|
icon: FluentIcons.AllApps
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Pivot"
|
title: qsTr("Pivot")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/Pivot.png",order:3,recentlyAdded:true,desc:"Presents information from different sources in atabbed view."})
|
extra: ({image:"qrc:/example/res/image/control/Pivot.png",order:3,recentlyAdded:true,desc:qsTr("Presents information from different sources in a tabbed view.")})
|
||||||
url:"qrc:/example/qml/page/T_Pivot.qml"
|
url: "qrc:/example/qml/page/T_Pivot.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"BreadcrumbBar"
|
title: qsTr("BreadcrumbBar")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_BreadcrumbBar.qml"
|
url: "qrc:/example/qml/page/T_BreadcrumbBar.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"TabView"
|
title: qsTr("TabView")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/TabView.png",order:1,recentlyAdded:true,desc:"A control that displays a collection of tabs thatcan be used to display several documents."})
|
extra: ({image:"qrc:/example/res/image/control/TabView.png",order:1,recentlyAdded:true,desc:qsTr("A control that displays a collection of tabs thatcan be used to display several documents.")})
|
||||||
url:"qrc:/example/qml/page/T_TabView.qml"
|
url: "qrc:/example/qml/page/T_TabView.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"TreeView"
|
title: qsTr("TreeView")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_TreeView.qml"
|
url: "qrc:/example/qml/page/T_TreeView.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"TableView"
|
title: qsTr("TableView")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/DataGrid.png",order:4,recentlyAdded:true,desc:"The TableView control provides a flexible way to display a collection of data in rows and columns"})
|
extra: ({image:"qrc:/example/res/image/control/DataGrid.png",order:4,recentlyAdded:true,desc:qsTr("The TableView control provides a flexible way to display a collection of data in rows and columns")})
|
||||||
url:"qrc:/example/qml/page/T_TableView.qml"
|
url: "qrc:/example/qml/page/T_TableView.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Pagination"
|
title: qsTr("Pagination")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Pagination.qml"
|
url: "qrc:/example/qml/page/T_Pagination.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"MultiWindow"
|
title: qsTr("MultiWindow")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_MultiWindow.qml"
|
url: "qrc:/example/qml/page/T_MultiWindow.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"FlipView"
|
title: qsTr("FlipView")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
extra:({image:"qrc:/example/res/image/control/FlipView.png",order:2,recentlyAdded:true,desc:"Presents a collection of items that the user canflip through, one item at a time."})
|
extra: ({image:"qrc:/example/res/image/control/FlipView.png",order:2,recentlyAdded:true,desc:qsTr("Presents a collection of items that the user canflip through, one item at a time.")})
|
||||||
url:"qrc:/example/qml/page/T_FlipView.qml"
|
url: "qrc:/example/qml/page/T_FlipView.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:Lang.theming
|
title: qsTr("Theming")
|
||||||
icon:FluentIcons.Brightness
|
icon:FluentIcons.Brightness
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Acrylic"
|
title: qsTr("Acrylic")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Acrylic.qml"
|
url: "qrc:/example/qml/page/T_Acrylic.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Theme"
|
title: qsTr("Theme")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Theme.qml"
|
url: "qrc:/example/qml/page/T_Theme.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Typography"
|
title: qsTr("Typography")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Typography.qml"
|
url: "qrc:/example/qml/page/T_Typography.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Awesome"
|
title: qsTr("Awesome")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Awesome.qml"
|
url: "qrc:/example/qml/page/T_Awesome.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title: Lang.chart
|
title: qsTr("Chart")
|
||||||
icon:FluentIcons.AreaChart
|
icon: FluentIcons.AreaChart
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.bar_chart
|
title: qsTr("Bar Chart")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/chart/T_BarChart.qml"
|
url: "qrc:/example/qml/chart/T_BarChart.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.line_chart
|
title: qsTr("Line Chart")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/chart/T_LineChart.qml"
|
url: "qrc:/example/qml/chart/T_LineChart.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.pie_chart
|
title: qsTr("Pie Chart")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/chart/T_PieChart.qml"
|
url: "qrc:/example/qml/chart/T_PieChart.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.polar_area_chart
|
title: qsTr("Polar Area Chart")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/chart/T_PolarAreaChart.qml"
|
url: "qrc:/example/qml/chart/T_PolarAreaChart.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.bubble_chart
|
title: qsTr("Bubble Chart")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/chart/T_BubbleChart.qml"
|
url: "qrc:/example/qml/chart/T_BubbleChart.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.scatter_chart
|
title: qsTr("Scatter Chart")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/chart/T_ScatterChart.qml"
|
url: "qrc:/example/qml/chart/T_ScatterChart.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:Lang.radar_chart
|
title: qsTr("Radar Chart")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/chart/T_RadarChart.qml"
|
url: "qrc:/example/qml/chart/T_RadarChart.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -412,67 +412,67 @@ FluObject{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluPaneItemExpander{
|
FluPaneItemExpander{
|
||||||
title:Lang.other
|
title: qsTr("Other")
|
||||||
icon:FluentIcons.Shop
|
icon: FluentIcons.Shop
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"QRCode"
|
title: qsTr("QRCode")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_QRCode.qml"
|
url: "qrc:/example/qml/page/T_QRCode.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Tour"
|
title: qsTr("Tour")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Tour.qml"
|
url: "qrc:/example/qml/page/T_Tour.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Timeline"
|
title: qsTr("Timeline")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Timeline.qml"
|
url: "qrc:/example/qml/page/T_Timeline.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Captcha"
|
title: qsTr("Captcha")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Captcha.qml"
|
url: "qrc:/example/qml/page/T_Captcha.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Network"
|
title: qsTr("Network")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_Network.qml"
|
url: "qrc:/example/qml/page/T_Network.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
id:item_other
|
id: item_other
|
||||||
title:"RemoteLoader"
|
title: qsTr("Remote Loader")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
count: 99
|
count: 99
|
||||||
infoBadge:FluBadge{
|
infoBadge:FluBadge{
|
||||||
count: item_other.count
|
count: item_other.count
|
||||||
color: Qt.rgba(82/255,196/255,26/255,1)
|
color: Qt.rgba(82/255,196/255,26/255,1)
|
||||||
}
|
}
|
||||||
url:"qrc:/example/qml/page/T_RemoteLoader.qml"
|
url: "qrc:/example/qml/page/T_RemoteLoader.qml"
|
||||||
onTap:{
|
onTap: {
|
||||||
item_other.count = 0
|
item_other.count = 0
|
||||||
navigationView.push("qrc:/example/qml/page/T_RemoteLoader.qml")
|
navigationView.push("qrc:/example/qml/page/T_RemoteLoader.qml")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"HotLoader"
|
title: qsTr("Hot Loader")
|
||||||
onTapListener:function(){
|
onTapListener: function(){
|
||||||
FluApp.navigate("/hotload")
|
FluApp.navigate("/hotload")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"3D"
|
title: qsTr("3D")
|
||||||
menuDelegate: paneItemMenu
|
menuDelegate: paneItemMenu
|
||||||
url:"qrc:/example/qml/page/T_3D.qml"
|
url: "qrc:/example/qml/page/T_3D.qml"
|
||||||
onTap:{ navigationView.push(url) }
|
onTap: { navigationView.push(url) }
|
||||||
}
|
}
|
||||||
FluPaneItem{
|
FluPaneItem{
|
||||||
title:"Test Crash"
|
title: qsTr("Test Crash")
|
||||||
visible: FluTools.isWin()
|
visible: FluTools.isWin()
|
||||||
onTapListener: function(){
|
onTapListener: function(){
|
||||||
AppInfo.testCrash()
|
AppInfo.testCrash()
|
||||||
|
|
|
@ -1,104 +0,0 @@
|
||||||
pragma Singleton
|
|
||||||
|
|
||||||
import QtQuick 2.15
|
|
||||||
|
|
||||||
QtObject {
|
|
||||||
|
|
||||||
property string home
|
|
||||||
property string basic_input
|
|
||||||
property string form
|
|
||||||
property string surface
|
|
||||||
property string layout
|
|
||||||
property string popus
|
|
||||||
property string navigation
|
|
||||||
property string theming
|
|
||||||
property string media
|
|
||||||
property string dark_mode
|
|
||||||
property string sys_dark_mode
|
|
||||||
property string search
|
|
||||||
property string about
|
|
||||||
property string settings
|
|
||||||
property string locale
|
|
||||||
property string navigation_view_display_mode
|
|
||||||
property string other
|
|
||||||
property string chart
|
|
||||||
property string bar_chart
|
|
||||||
property string line_chart
|
|
||||||
property string pie_chart
|
|
||||||
property string polar_area_chart
|
|
||||||
property string bubble_chart
|
|
||||||
property string scatter_chart
|
|
||||||
property string radar_chart
|
|
||||||
|
|
||||||
function zh(){
|
|
||||||
home="首页"
|
|
||||||
basic_input="基本输入"
|
|
||||||
form="表单"
|
|
||||||
surface="表面"
|
|
||||||
layout="布局"
|
|
||||||
popus="弹窗"
|
|
||||||
navigation="导航"
|
|
||||||
theming="主题"
|
|
||||||
media="媒体"
|
|
||||||
dark_mode="夜间模式"
|
|
||||||
sys_dark_mode="跟随系统"
|
|
||||||
search="查找"
|
|
||||||
about="关于"
|
|
||||||
settings="设置"
|
|
||||||
locale="语言环境"
|
|
||||||
navigation_view_display_mode="导航视图显示模式"
|
|
||||||
other="其他"
|
|
||||||
chart="表格"
|
|
||||||
bar_chart="条形图"
|
|
||||||
line_chart="折线图"
|
|
||||||
pie_chart="饼图"
|
|
||||||
polar_area_chart="极坐标区域图"
|
|
||||||
bubble_chart="气泡图"
|
|
||||||
scatter_chart="散点图"
|
|
||||||
radar_chart="雷达图"
|
|
||||||
}
|
|
||||||
|
|
||||||
function en(){
|
|
||||||
home="Home"
|
|
||||||
basic_input="Basic Input"
|
|
||||||
form="Form"
|
|
||||||
surface="Surfaces"
|
|
||||||
layout="Layout"
|
|
||||||
popus="Popus"
|
|
||||||
navigation="Navigation"
|
|
||||||
theming="Theming"
|
|
||||||
media="Media"
|
|
||||||
dark_mode="Dark Mode"
|
|
||||||
sys_dark_mode="Sync with system"
|
|
||||||
search="Search"
|
|
||||||
about="About"
|
|
||||||
settings="Settings"
|
|
||||||
locale="Locale"
|
|
||||||
navigation_view_display_mode="NavigationView Display Mode"
|
|
||||||
other="Other"
|
|
||||||
chart="Chart"
|
|
||||||
bar_chart="Bar Chart"
|
|
||||||
line_chart="Line Chart"
|
|
||||||
pie_chart="Pie Chart"
|
|
||||||
polar_area_chart="Polar Area Chart"
|
|
||||||
bubble_chart="Bubble Chart"
|
|
||||||
scatter_chart="Scatter Chart"
|
|
||||||
radar_chart="Radar Chart"
|
|
||||||
}
|
|
||||||
|
|
||||||
property string __locale
|
|
||||||
property var __localeList: ["Zh","En"]
|
|
||||||
|
|
||||||
on__LocaleChanged: {
|
|
||||||
if(__locale === "Zh"){
|
|
||||||
zh()
|
|
||||||
}else{
|
|
||||||
en()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
__locale = "En"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,3 +1,2 @@
|
||||||
singleton ItemsOriginal 1.0 ItemsOriginal.qml
|
singleton ItemsOriginal 1.0 ItemsOriginal.qml
|
||||||
singleton ItemsFooter 1.0 ItemsFooter.qml
|
singleton ItemsFooter 1.0 ItemsFooter.qml
|
||||||
singleton Lang 1.0 Lang.qml
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Acrylic"
|
title: qsTr("Acrylic")
|
||||||
|
|
||||||
RowLayout{
|
RowLayout{
|
||||||
spacing: 10
|
spacing: 10
|
||||||
|
|
|
@ -6,11 +6,11 @@ import FluentUI 1.0
|
||||||
|
|
||||||
FluContentPage {
|
FluContentPage {
|
||||||
|
|
||||||
title:"Awesome"
|
title: qsTr("Awesome")
|
||||||
|
|
||||||
FluTextBox{
|
FluTextBox{
|
||||||
id:text_box
|
id:text_box
|
||||||
placeholderText: "请输入关键字"
|
placeholderText: qsTr("Please enter a keyword")
|
||||||
anchors{
|
anchors{
|
||||||
topMargin: 20
|
topMargin: 20
|
||||||
top:parent.top
|
top:parent.top
|
||||||
|
@ -18,7 +18,7 @@ FluContentPage {
|
||||||
}
|
}
|
||||||
|
|
||||||
FluFilledButton{
|
FluFilledButton{
|
||||||
text:"搜索"
|
text: qsTr("Search")
|
||||||
anchors{
|
anchors{
|
||||||
left: text_box.right
|
left: text_box.right
|
||||||
verticalCenter: text_box.verticalCenter
|
verticalCenter: text_box.verticalCenter
|
||||||
|
@ -53,7 +53,7 @@ FluContentPage {
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var text ="FluentIcons."+modelData.name;
|
var text ="FluentIcons."+modelData.name;
|
||||||
FluTools.clipText(text)
|
FluTools.clipText(text)
|
||||||
showSuccess("您复制了 "+text)
|
showSuccess(qsTr("You Copied ")+text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluText {
|
FluText {
|
||||||
|
@ -62,7 +62,7 @@ FluContentPage {
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
anchors.top: item_icon.bottom
|
anchors.top: item_icon.bottom
|
||||||
width:parent.width
|
width:parent.width
|
||||||
wrapMode: Text.WrapAnywhere
|
wrapMode: Text.WordWrap
|
||||||
text: modelData.name
|
text: modelData.name
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,12 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Badge"
|
title: qsTr("Badge")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
height: 106
|
height: 120
|
||||||
paddings: 10
|
paddings: 10
|
||||||
|
|
||||||
Column{
|
Column{
|
||||||
|
@ -20,11 +20,13 @@ FluScrollablePage{
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
left: parent.left
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"一般出现在通知图标或头像的右上角,用于显示需要处理的消息条数"
|
wrapMode: Text.WordWrap
|
||||||
|
width: parent.width
|
||||||
|
text: qsTr("It usually appears in the upper right corner of the notification icon or avatar to display the number of messages that need to be processed")
|
||||||
}
|
}
|
||||||
|
|
||||||
Row{
|
Row{
|
||||||
spacing: 20
|
spacing: 20
|
||||||
Rectangle{
|
Rectangle{
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"BreadcurmbBar"
|
title: qsTr("BreadcurmbBar")
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
var items = []
|
var items = []
|
||||||
|
@ -48,7 +48,7 @@ FluScrollablePage{
|
||||||
spacing: 10
|
spacing: 10
|
||||||
|
|
||||||
FluFilledButton{
|
FluFilledButton{
|
||||||
text:"Reset sample"
|
text: qsTr("Reset sample")
|
||||||
onClicked:{
|
onClicked:{
|
||||||
var items = []
|
var items = []
|
||||||
for(var i=0;i<10;i++){
|
for(var i=0;i<10;i++){
|
||||||
|
@ -66,7 +66,6 @@ FluScrollablePage{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
onClickItem:
|
onClickItem:
|
||||||
(model)=>{
|
(model)=>{
|
||||||
//不是点击最后一个item元素
|
|
||||||
if(model.index+1!==count()){
|
if(model.index+1!==count()){
|
||||||
breadcrumb_2.remove(model.index+1,count()-model.index-1)
|
breadcrumb_2.remove(model.index+1,count()-model.index-1)
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,11 +7,11 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Buttons"
|
title: qsTr("Buttons")
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
text:"支持Tab键切换焦点,空格键执行点击事件"
|
text: qsTr("Support the Tab key to switch focus, and the Space key to perform click events")
|
||||||
}
|
}
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
|
@ -21,9 +21,8 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
|
|
||||||
FluTextButton{
|
FluTextButton{
|
||||||
disabled:text_button_switch.checked
|
disabled: text_button_switch.checked
|
||||||
text:"Text Button"
|
text: qsTr("Text Button")
|
||||||
contentDescription: "文本按钮"
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showInfo("点击Text Button")
|
showInfo("点击Text Button")
|
||||||
}
|
}
|
||||||
|
@ -33,12 +32,12 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:text_button_switch
|
id: text_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -59,10 +58,10 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
|
|
||||||
FluButton{
|
FluButton{
|
||||||
disabled:button_switch.checked
|
disabled: button_switch.checked
|
||||||
text:"Standard Button"
|
text: qsTr("Standard Button")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showInfo("点击StandardButton")
|
showInfo(qsTr("Click StandardButton"))
|
||||||
}
|
}
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
|
@ -70,12 +69,12 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:button_switch
|
id: button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -96,10 +95,10 @@ FluScrollablePage{
|
||||||
paddings: 10
|
paddings: 10
|
||||||
|
|
||||||
FluFilledButton{
|
FluFilledButton{
|
||||||
disabled:filled_button_switch.checked
|
disabled: filled_button_switch.checked
|
||||||
text:"Filled Button"
|
text: qsTr("Filled Button")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showWarning("点击FilledButton"+height)
|
showWarning(qsTr("Click FilledButton"))
|
||||||
}
|
}
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
|
@ -107,12 +106,12 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:filled_button_switch
|
id: filled_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -134,19 +133,19 @@ FluScrollablePage{
|
||||||
|
|
||||||
FluToggleButton{
|
FluToggleButton{
|
||||||
disabled:toggle_button_switch.checked
|
disabled:toggle_button_switch.checked
|
||||||
text:"Toggle Button"
|
text: qsTr("Toggle Button")
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:toggle_button_switch
|
id: toggle_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -161,7 +160,7 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer{
|
Timer{
|
||||||
id:timer_progress
|
id: timer_progress
|
||||||
interval: 200
|
interval: 200
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
btn_progress.progress = (btn_progress.progress + 0.1).toFixed(1)
|
btn_progress.progress = (btn_progress.progress + 0.1).toFixed(1)
|
||||||
|
@ -180,9 +179,9 @@ FluScrollablePage{
|
||||||
paddings: 10
|
paddings: 10
|
||||||
|
|
||||||
FluProgressButton{
|
FluProgressButton{
|
||||||
id:btn_progress
|
id: btn_progress
|
||||||
disabled:progress_button_switch.checked
|
disabled: progress_button_switch.checked
|
||||||
text:"Progress Button"
|
text: qsTr("Progress Button")
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
left: parent.left
|
left: parent.left
|
||||||
|
@ -193,12 +192,12 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:progress_button_switch
|
id: progress_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -219,9 +218,9 @@ FluScrollablePage{
|
||||||
paddings: 10
|
paddings: 10
|
||||||
|
|
||||||
FluLoadingButton{
|
FluLoadingButton{
|
||||||
id:btn_loading
|
id: btn_loading
|
||||||
loading:loading_button_switch.checked
|
loading: loading_button_switch.checked
|
||||||
text:"Loading Button"
|
text: qsTr("Loading Button")
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
left: parent.left
|
left: parent.left
|
||||||
|
@ -231,13 +230,13 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:loading_button_switch
|
id: loading_button_switch
|
||||||
checked: true
|
checked: true
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Loading"
|
text: qsTr("Loading")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -258,7 +257,7 @@ FluScrollablePage{
|
||||||
paddings: 10
|
paddings: 10
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
Flow{
|
Flow{
|
||||||
id:layout_icon_button
|
id: layout_icon_button
|
||||||
spacing: 10
|
spacing: 10
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
|
@ -266,60 +265,60 @@ FluScrollablePage{
|
||||||
right: icon_button_switch.left
|
right: icon_button_switch.left
|
||||||
}
|
}
|
||||||
FluIconButton{
|
FluIconButton{
|
||||||
disabled:icon_button_switch.checked
|
disabled: icon_button_switch.checked
|
||||||
iconDelegate: Image{ sourceSize: Qt.size(40,40) ; width: 20; height: 20; source: "qrc:/example/res/image/ic_home_github.png" }
|
iconDelegate: Image{ sourceSize: Qt.size(40,40) ; width: 20; height: 20; source: "qrc:/example/res/image/ic_home_github.png" }
|
||||||
onClicked:{
|
onClicked:{
|
||||||
showSuccess("点击IconButton")
|
showSuccess(qsTr("Click IconButton"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluIconButton{
|
FluIconButton{
|
||||||
iconSource:FluentIcons.ChromeCloseContrast
|
iconSource: FluentIcons.ChromeCloseContrast
|
||||||
disabled:icon_button_switch.checked
|
disabled: icon_button_switch.checked
|
||||||
iconSize: 15
|
iconSize: 15
|
||||||
text:"IconOnly"
|
text: qsTr("IconOnly")
|
||||||
display: Button.IconOnly
|
display: Button.IconOnly
|
||||||
onClicked:{
|
onClicked:{
|
||||||
showSuccess("Button.IconOnly")
|
showSuccess(qsTr("Button.IconOnly"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluIconButton{
|
FluIconButton{
|
||||||
iconSource:FluentIcons.ChromeCloseContrast
|
iconSource: FluentIcons.ChromeCloseContrast
|
||||||
disabled:icon_button_switch.checked
|
disabled: icon_button_switch.checked
|
||||||
iconSize: 15
|
iconSize: 15
|
||||||
text:"TextOnly"
|
text: qsTr("TextOnly")
|
||||||
display: Button.TextOnly
|
display: Button.TextOnly
|
||||||
onClicked:{
|
onClicked:{
|
||||||
showSuccess("Button.TextOnly")
|
showSuccess(qsTr("Button.TextOnly"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluIconButton{
|
FluIconButton{
|
||||||
iconSource:FluentIcons.ChromeCloseContrast
|
iconSource: FluentIcons.ChromeCloseContrast
|
||||||
disabled:icon_button_switch.checked
|
disabled: icon_button_switch.checked
|
||||||
iconSize: 15
|
iconSize: 15
|
||||||
text:"TextBesideIcon"
|
text: qsTr("TextBesideIcon")
|
||||||
display: Button.TextBesideIcon
|
display: Button.TextBesideIcon
|
||||||
onClicked:{
|
onClicked:{
|
||||||
showSuccess("Button.TextBesideIcon")
|
showSuccess(qsTr("Button.TextBesideIcon"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluIconButton{
|
FluIconButton{
|
||||||
iconSource:FluentIcons.ChromeCloseContrast
|
iconSource: FluentIcons.ChromeCloseContrast
|
||||||
disabled:icon_button_switch.checked
|
disabled: icon_button_switch.checked
|
||||||
iconSize: 15
|
iconSize: 15
|
||||||
text:"TextUnderIcon"
|
text: qsTr("TextUnderIcon")
|
||||||
display: Button.TextUnderIcon
|
display: Button.TextUnderIcon
|
||||||
onClicked:{
|
onClicked:{
|
||||||
showSuccess("Button.TextUnderIcon")
|
showSuccess(qsTr("Button.TextUnderIcon"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:icon_button_switch
|
id: icon_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -339,35 +338,35 @@ FluScrollablePage{
|
||||||
paddings: 10
|
paddings: 10
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
FluDropDownButton{
|
FluDropDownButton{
|
||||||
disabled:drop_down_button_switch.checked
|
disabled: drop_down_button_switch.checked
|
||||||
text:"DropDownButton"
|
text: qsTr("DropDownButton")
|
||||||
anchors{
|
anchors{
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluMenuItem{
|
FluMenuItem{
|
||||||
text:"Menu_1"
|
text: qsTr("Menu_1")
|
||||||
}
|
}
|
||||||
FluMenuItem{
|
FluMenuItem{
|
||||||
text:"Menu_2"
|
text: qsTr("Menu_2")
|
||||||
}
|
}
|
||||||
FluMenuItem{
|
FluMenuItem{
|
||||||
text:"Menu_3"
|
text: qsTr("Menu_3")
|
||||||
}
|
}
|
||||||
FluMenuItem{
|
FluMenuItem{
|
||||||
text:"Menu_4"
|
text: qsTr("Menu_4")
|
||||||
onClicked: {
|
onClicked: {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:drop_down_button_switch
|
id: drop_down_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -403,24 +402,24 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
FluRadioButton{
|
FluRadioButton{
|
||||||
disabled:radio_button_switch.checked
|
disabled:radio_button_switch.checked
|
||||||
text:"Radio Button_1"
|
text: qsTr("Radio Button_1")
|
||||||
}
|
}
|
||||||
FluRadioButton{
|
FluRadioButton{
|
||||||
disabled:radio_button_switch.checked
|
disabled:radio_button_switch.checked
|
||||||
text:"Radio Button_2"
|
text: qsTr("Radio Button_2")
|
||||||
}
|
}
|
||||||
FluRadioButton{
|
FluRadioButton{
|
||||||
disabled:radio_button_switch.checked
|
disabled:radio_button_switch.checked
|
||||||
text:"Radio Button_3"
|
text: qsTr("Radio Button_3")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:radio_button_switch
|
id: radio_button_switch
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"CalendarPicker"
|
title: qsTr("CalendarPicker")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
|
@ -7,10 +7,10 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Captcha"
|
title: qsTr("Captcha")
|
||||||
|
|
||||||
FluCaptcha{
|
FluCaptcha{
|
||||||
id:captcha
|
id: captcha
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
ignoreCase:switch_case.checked
|
ignoreCase:switch_case.checked
|
||||||
MouseArea{
|
MouseArea{
|
||||||
|
@ -23,7 +23,7 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluButton{
|
FluButton{
|
||||||
text:"Refresh"
|
text: qsTr("Refresh")
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
onClicked: {
|
onClicked: {
|
||||||
captcha.refresh()
|
captcha.refresh()
|
||||||
|
@ -31,8 +31,8 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:switch_case
|
id: switch_case
|
||||||
text:"Ignore Case"
|
text: qsTr("Ignore Case")
|
||||||
checked: true
|
checked: true
|
||||||
Layout.topMargin: 10
|
Layout.topMargin: 10
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 10
|
Layout.topMargin: 10
|
||||||
FluTextBox{
|
FluTextBox{
|
||||||
id:text_box
|
id:text_box
|
||||||
placeholderText: "请输入验证码"
|
placeholderText: qsTr("Please enter a verification code")
|
||||||
Layout.preferredWidth: 240
|
Layout.preferredWidth: 240
|
||||||
}
|
}
|
||||||
FluButton{
|
FluButton{
|
||||||
|
@ -50,9 +50,9 @@ FluScrollablePage{
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var success = captcha.verify(text_box.text)
|
var success = captcha.verify(text_box.text)
|
||||||
if(success){
|
if(success){
|
||||||
showSuccess("验证码正确")
|
showSuccess(qsTr("The verification code is correct"))
|
||||||
}else{
|
}else{
|
||||||
showError("错误验证,请重新输入")
|
showError(qsTr("Error validation, please re-enter"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Carousel"
|
title: qsTr("Carousel")
|
||||||
|
|
||||||
ListModel{
|
ListModel{
|
||||||
id:data_model
|
id:data_model
|
||||||
|
@ -34,7 +34,7 @@ FluScrollablePage{
|
||||||
left:parent.left
|
left:parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"轮播图,支持无限轮播,无限滑动,用ListView实现的组件"
|
text: qsTr("Carousel map, support infinite carousel, infinite swipe, and components implemented with ListView")
|
||||||
}
|
}
|
||||||
Item{
|
Item{
|
||||||
width: 400
|
width: 400
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"CheckBox"
|
title: qsTr("CheckBox")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -16,7 +16,7 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
text:"A 2-state CheckBox"
|
text: qsTr("A 2-state CheckBox")
|
||||||
}
|
}
|
||||||
|
|
||||||
Row{
|
Row{
|
||||||
|
@ -30,11 +30,11 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
FluCheckBox{
|
FluCheckBox{
|
||||||
disabled: check_box_switch_two.checked
|
disabled: check_box_switch_two.checked
|
||||||
text:"Right"
|
text: qsTr("Right")
|
||||||
}
|
}
|
||||||
FluCheckBox{
|
FluCheckBox{
|
||||||
disabled: check_box_switch_two.checked
|
disabled: check_box_switch_two.checked
|
||||||
text:"Left"
|
text: qsTr("Left")
|
||||||
textRight: false
|
textRight: false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ FluScrollablePage{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
@ -62,7 +62,7 @@ FluScrollablePage{
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
|
|
||||||
FluText{
|
FluText{
|
||||||
text:"A 3-state CheckBox"
|
text: qsTr("A 3-state CheckBox")
|
||||||
}
|
}
|
||||||
|
|
||||||
Row{
|
Row{
|
||||||
|
@ -73,7 +73,7 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
FluCheckBox{
|
FluCheckBox{
|
||||||
property int count: 1
|
property int count: 1
|
||||||
text:"Three State"
|
text: qsTr("Three State")
|
||||||
disabled: check_box_switch_three.checked
|
disabled: check_box_switch_three.checked
|
||||||
clickListener: function(){
|
clickListener: function(){
|
||||||
var flag = count%3
|
var flag = count%3
|
||||||
|
@ -94,12 +94,12 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FluToggleSwitch{
|
FluToggleSwitch{
|
||||||
id:check_box_switch_three
|
id: check_box_switch_three
|
||||||
anchors{
|
anchors{
|
||||||
right: parent.right
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text:"Disabled"
|
text: qsTr("Disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CodeExpander{
|
CodeExpander{
|
||||||
|
|
|
@ -7,7 +7,7 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"Clip"
|
title: qsTr("Clip")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -22,8 +22,7 @@ FluScrollablePage{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
FluText{
|
FluText{
|
||||||
text:"配合图片使用(software渲染下该组件将没有效果)"
|
text: qsTr("Use with images (this component will have no effect under software rendering)")
|
||||||
font: FluTextStyle.Subtitle
|
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
}
|
}
|
||||||
RowLayout{
|
RowLayout{
|
||||||
|
@ -31,7 +30,7 @@ FluScrollablePage{
|
||||||
FluClip{
|
FluClip{
|
||||||
width: 50
|
width: 50
|
||||||
height: 50
|
height: 50
|
||||||
radius:[25,0,25,25]
|
radius: [25,0,25,25]
|
||||||
Image {
|
Image {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -42,7 +41,7 @@ FluScrollablePage{
|
||||||
FluClip{
|
FluClip{
|
||||||
width: 50
|
width: 50
|
||||||
height: 50
|
height: 50
|
||||||
radius:[10,10,10,10]
|
radius: [10,10,10,10]
|
||||||
Image {
|
Image {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -53,7 +52,7 @@ FluScrollablePage{
|
||||||
FluClip{
|
FluClip{
|
||||||
width: 50
|
width: 50
|
||||||
height: 50
|
height: 50
|
||||||
radius:[25,25,25,25]
|
radius: [25,25,25,25]
|
||||||
Image {
|
Image {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -64,7 +63,7 @@ FluScrollablePage{
|
||||||
FluClip{
|
FluClip{
|
||||||
width: 50
|
width: 50
|
||||||
height: 50
|
height: 50
|
||||||
radius:[0,25,25,25]
|
radius: [0,25,25,25]
|
||||||
Image {
|
Image {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -76,7 +75,7 @@ FluScrollablePage{
|
||||||
FluClip{
|
FluClip{
|
||||||
width: 1920/5
|
width: 1920/5
|
||||||
height: 1200/5
|
height: 1200/5
|
||||||
radius:[8,8,8,8]
|
radius: [8,8,8,8]
|
||||||
Image {
|
Image {
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
source: "qrc:/example/res/image/banner_1.jpg"
|
source: "qrc:/example/res/image/banner_1.jpg"
|
||||||
|
|
|
@ -7,21 +7,27 @@ import "../component"
|
||||||
|
|
||||||
FluScrollablePage{
|
FluScrollablePage{
|
||||||
|
|
||||||
title:"ColorPicker"
|
title: qsTr("ColorPicker")
|
||||||
|
|
||||||
FluArea{
|
FluArea{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
height: 60
|
height: 60
|
||||||
paddings: 10
|
paddings: 10
|
||||||
|
|
||||||
RowLayout{
|
RowLayout{
|
||||||
FluText{
|
FluText{
|
||||||
text:"点击选择颜色->"
|
text: qsTr("Click to Select a Color - >")
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
FluColorPicker{
|
FluColorPicker{
|
||||||
|
cancelText: qsTr("Cancel")
|
||||||
|
okText: qsTr("OK")
|
||||||
|
titleText: qsTr("Color Picker")
|
||||||
|
editText: qsTr("Edit Color")
|
||||||
|
redText: qsTr("Red")
|
||||||
|
greenText: qsTr("Green")
|
||||||
|
blueText: qsTr("Blue")
|
||||||
|
opacityText: qsTr("Opacity")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,4 +40,3 @@ FluScrollablePage{
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue