This commit is contained in:
朱子楚\zhuzi 2024-03-09 15:35:48 +08:00
parent 2a03f24941
commit 7c0c4cc451
167 changed files with 7567 additions and 1816 deletions

View File

@ -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"

4
.gitignore vendored
View File

@ -40,4 +40,6 @@ cmake-build-*
example/Version.h example/Version.h
action-cli action-cli
dist dist
*.qm

View File

@ -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)

View File

@ -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)
#exmapleQMLimport 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()
#Windowsrcinno setup #Windowsrcinno 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

View File

@ -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>

2701
example/example_en.ts Normal file

File diff suppressed because it is too large Load Diff

2710
example/example_zh.ts Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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",

View File

@ -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",

View File

@ -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"

View File

@ -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()

View File

@ -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"
}
}

View File

@ -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

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"Acrylic" title: qsTr("Acrylic")
RowLayout{ RowLayout{
spacing: 10 spacing: 10

View File

@ -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
} }

View File

@ -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{

View File

@ -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)
} }

View File

@ -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{

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"CalendarPicker" title: qsTr("CalendarPicker")
FluArea{ FluArea{
Layout.fillWidth: true Layout.fillWidth: true

View File

@ -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"))
} }
} }
} }

View File

@ -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

View File

@ -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{

View File

@ -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"

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"ColorPicker" title: qsTr("ColorPicker")
FluArea{ FluArea{
Layout.fillWidth: true Layout.fillWidth: true

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"ComboBox" title: qsTr("ComboBox")
FluArea{ FluArea{
Layout.fillWidth: true Layout.fillWidth: true

View File

@ -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())
} }

View File

@ -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"))
} }
} }
@ -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"))
} }
} }
} }

View File

@ -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...")
} }
} }
} }

View File

@ -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

View File

@ -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 FluentUI 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

View File

@ -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(){

View File

@ -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"))'
} }
} }

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"Menu" title: qsTr("Menu")
FluMenu { FluMenu {
id:menu id:menu
@ -34,13 +34,13 @@ FluScrollablePage{
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()
' '
} }
} }

View File

@ -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 windowa 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 windowIf 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 windowIf 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"})
} }

View File

@ -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
} }
} }

View File

@ -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>")
} }
} }

View File

@ -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.")
} }
} }
} }

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"Progress" title: qsTr("Progress")
FluArea{ FluArea{
Layout.fillWidth: true Layout.fillWidth: true

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"QRCode" title: qsTr("QRCode")
FluQRCode{ FluQRCode{
id:qrcode id:qrcode

View File

@ -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{

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage { FluScrollablePage {
title: "RatingControl" title: qsTr("RatingControl")
FluArea { FluArea {
Layout.fillWidth: true Layout.fillWidth: true

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"Rectangle" title: qsTr("Rectangle")
FluArea{ FluArea{
Layout.fillWidth: true Layout.fillWidth: true

View File

@ -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()
} }
} }
} }

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"ShortcutPicker" title: qsTr("ShortcutPicker")
FluArea{ FluArea{
Layout.fillWidth: true Layout.fillWidth: true

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"Slider" title: qsTr("Slider")
FluArea{ FluArea{
Layout.fillWidth: true Layout.fillWidth: true

View File

@ -7,7 +7,7 @@ import "../component"
FluContentPage{ FluContentPage{
title:"SplitLayout" title: qsTr("SplitLayout")
RowLayout{ RowLayout{
id:layout_dropdown id:layout_dropdown

View File

@ -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]

View File

@ -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

View File

@ -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: {

View File

@ -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:"Delete Selection"
onClicked: { onClicked: {
var data = [] var data = []
var rows = [] var rows = []
@ -440,7 +440,7 @@ FluContentPage{
} }
FluButton{ FluButton{
text:"添加一行数据" text:"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()

View File

@ -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")
}' }'
} }

View File

@ -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{

View File

@ -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{

View File

@ -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")))
} }

View File

@ -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
} }
} }

View File

@ -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{

View File

@ -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"))
} }
}' }'
} }

View File

@ -11,10 +11,13 @@ FluScrollablePage{
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"))
} }
} }
} }

View File

@ -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()
} }

View File

@ -7,7 +7,7 @@ FluContentPage {
property real textScale: 1 property real textScale: 1
title: "Typography" title: qsTr("Typography")
rightPadding: 10 rightPadding: 10
FluArea{ FluArea{

View File

@ -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

View File

@ -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)
} }

View File

@ -0,0 +1,115 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import FluentUI
import Qt.labs.platform
import "../component"
FluWindow {
id:window
title:"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:"FluentUI脚手架"
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: "名称"
focus: true
}
Row{
spacing: 8
FluTextBox{
id:text_box_path
width: 300
placeholderText: "创建路径"
anchors.verticalCenter: parent.verticalCenter
Component.onCompleted: {
text = FluTools.toLocalPath(StandardPaths.standardLocations(StandardPaths.DocumentsLocation)[0])
}
}
FluButton{
text:"浏览"
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:"取消"
width: 120
anchors.verticalCenter: parent.verticalCenter
onClicked: {
window.close()
}
}
FluFilledButton{
text:"创建"
width: 120
anchors.verticalCenter: parent.verticalCenter
onClicked: {
InitalizrHelper.generate(text_box_name.text,text_box_path.text)
}
}
}
}
}

View File

@ -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

View File

@ -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()
} }
} }
} }
} }

View File

@ -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)
} }

View File

@ -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")
} }
} }

View File

@ -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")
} }
} }

View File

@ -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")
} }
} }

View File

@ -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",

View File

@ -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",

View File

@ -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"

View File

@ -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()

View File

@ -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"
}
}

View File

@ -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

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"Acrylic" title: qsTr("Acrylic")
RowLayout{ RowLayout{
spacing: 10 spacing: 10

View File

@ -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
} }

View File

@ -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{

View File

@ -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)
} }

View File

@ -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{

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"CalendarPicker" title: qsTr("CalendarPicker")
FluArea{ FluArea{
Layout.fillWidth: true Layout.fillWidth: true

View File

@ -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"))
} }
} }
} }

View File

@ -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

View File

@ -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{

View File

@ -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"

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"ColorPicker" title: qsTr("ColorPicker")
FluArea{ FluArea{
Layout.fillWidth: true Layout.fillWidth: true

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"ComboBox" title: qsTr("ComboBox")
FluArea{ FluArea{
Layout.fillWidth: true Layout.fillWidth: true

View File

@ -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())
} }

View File

@ -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"))
} }
} }
@ -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"))
} }
} }
} }

View File

@ -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...")
} }
} }
} }

View File

@ -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

View File

@ -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 FluentUI 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
@ -275,3 +287,4 @@ FluScrollablePage{
} }
} }

View File

@ -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(){

View File

@ -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"))'
} }
} }

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"Menu" title: qsTr("Menu")
FluMenu { FluMenu {
id:menu id:menu
@ -34,13 +34,13 @@ FluScrollablePage{
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()
' '
} }
} }

View File

@ -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 windowa 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 windowIf 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 windowIf 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"})
} }

View File

@ -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
} }
} }

View File

@ -7,7 +7,7 @@ import FluentUI 1.0
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>")
} }
} }

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"Pivot" title: qsTr("Pivot")
FluArea{ FluArea{
Layout.fillWidth: true Layout.fillWidth: true
@ -22,27 +22,27 @@ FluScrollablePage{
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.")
} }
} }
} }
@ -53,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.")
} }
} }
} }

View File

@ -7,7 +7,7 @@ import "../component"
FluScrollablePage{ FluScrollablePage{
title:"Progress" title: qsTr("Progress")
FluArea{ FluArea{
Layout.fillWidth: true Layout.fillWidth: true

Some files were not shown because too many files have changed in this diff Show More