This commit is contained in:
朱子楚\zhuzi 2023-10-08 19:48:32 +08:00
parent 9e8e55cb73
commit 1d68de9287
11 changed files with 65 additions and 79 deletions

View File

@ -123,7 +123,6 @@
<file>res/image/qrcode_zfb.jpg</file>
<file>qml/App.qml</file>
<file>qml/component/CodeExpander.qml</file>
<file>qml/component/CustomWindow.qml</file>
<file>qml/global/ItemsFooter.qml</file>
<file>qml/global/ItemsOriginal.qml</file>
<file>qml/global/qmldir</file>

View File

@ -1,64 +0,0 @@
import QtQuick 2.15
import QtQuick.Layouts 1.15
import FluentUI 1.0
import org.wangwenx190.FramelessHelper 1.0
FluWindow {
id:window
property bool fixSize
property alias titleVisible: title_bar.titleVisible
property bool appBarVisible: true
default property alias content: container.data
FluAppBar {
id: title_bar
title: window.title
visible: window.appBarVisible
icon:"qrc:/example/res/image/favicon.ico"
anchors {
top: parent.top
left: parent.left
right: parent.right
}
darkText: lang.dark_mode
}
Item{
id:container
anchors{
top: title_bar.bottom
left: parent.left
right: parent.right
bottom: parent.bottom
}
clip: true
}
FramelessHelper{
id:framless_helper
onReady: {
setTitleBarItem(title_bar)
moveWindowToDesktopCenter()
setHitTestVisible(title_bar.minimizeButton())
setHitTestVisible(title_bar.maximizeButton())
setHitTestVisible(title_bar.closeButton())
setWindowFixedSize(fixSize)
title_bar.maximizeButton.visible = !fixSize
if (blurBehindWindowEnabled)
window.background = undefined
window.show()
}
}
Connections{
target: FluTheme
function onDarkChanged(){
if (FluTheme.dark)
FramelessUtils.systemTheme = FramelessHelperConstants.Dark
else
FramelessUtils.systemTheme = FramelessHelperConstants.Light
}
}
function setHitTestVisible(com){
framless_helper.setHitTestVisible(com)
}
function setTitleBarItem(com){
framless_helper.setTitleBarItem(com)
}
}

View File

@ -5,7 +5,7 @@ import FluentUI 1.0
import "qrc:///example/qml/component"
import "../component"
CustomWindow {
FluWindow {
id:window
title:"关于"

View File

@ -6,7 +6,7 @@ import example 1.0
import "qrc:///example/qml/component"
import "../component"
CustomWindow {
FluWindow {
id:window
title:"热加载"

View File

@ -5,7 +5,7 @@ import FluentUI 1.0
import "qrc:///example/qml/component"
import "../component"
CustomWindow {
FluWindow {
id:window
title:"登录"

View File

@ -12,7 +12,7 @@ import "../component"
import "../viewmodel"
import "../global"
CustomWindow {
FluWindow {
id:window
title: "FluentUI"
@ -21,8 +21,8 @@ CustomWindow {
closeDestory:false
minimumWidth: 520
minimumHeight: 200
appBarVisible: false
launchMode: FluWindowType.SingleTask
appBar: undefined
SettingsViewModel{
id:viewmodel_settings

View File

@ -6,7 +6,7 @@ import example 1.0
import "qrc:///example/qml/component"
import "../component"
CustomWindow {
FluWindow {
id:window
width: 800

View File

@ -5,7 +5,7 @@ import FluentUI 1.0
import "qrc:///example/qml/component"
import "../component"
CustomWindow {
FluWindow {
id:window
title:"SingleInstance"

View File

@ -5,7 +5,7 @@ import FluentUI 1.0
import "qrc:///example/qml/component"
import "../component"
CustomWindow {
FluWindow {
id:window
title:"SingleTask"

View File

@ -5,7 +5,7 @@ import FluentUI 1.0
import "qrc:///example/qml/component"
import "../component"
CustomWindow {
FluWindow {
id:window
title:"Standard"

View File

@ -3,6 +3,7 @@ import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import FluentUI 1.0
import org.wangwenx190.FramelessHelper 1.0
Window {
default property alias content: container.data
@ -10,7 +11,9 @@ Window {
property int launchMode: FluWindowType.Standard
property var argument:({})
property var background : com_background
property bool fixSize: false
property Component loadingItem: com_loading
property var appBar: com_app_bar
property color backgroundColor: {
if(active){
return FluTheme.dark ? Qt.rgba(26/255,34/255,40/255,1) : Qt.rgba(243/255,243/255,243/255,1)
@ -28,6 +31,7 @@ Window {
}
}
signal initArgument(var argument)
property bool showSystemAppBar: true
id:window
color:"transparent"
Component.onCompleted: {
@ -50,13 +54,33 @@ Window {
color: window.backgroundColor
}
}
Component{
id:com_app_bar
FluAppBar {
title: window.title
}
}
Loader{
anchors.fill: parent
sourceComponent: background
}
Loader{
id: loader_title_bar
anchors {
top: parent.top
left: parent.left
right: parent.right
}
sourceComponent: window.appBar
}
Item{
id:container
anchors.fill: parent
anchors{
top: loader_title_bar.bottom
left: parent.left
right: parent.right
bottom: parent.bottom
}
clip: true
}
Loader{
@ -65,10 +89,6 @@ Window {
id:loader_loading
anchors.fill: container
}
FluInfoBar{
id:infoBar
root: window
}
Component{
id:com_loading
Popup{
@ -132,6 +152,37 @@ Window {
}
}
}
FluInfoBar{
id:infoBar
root: window
}
Connections{
target: FluTheme
function onDarkChanged(){
if (FluTheme.dark)
FramelessUtils.systemTheme = FramelessHelperConstants.Dark
else
FramelessUtils.systemTheme = FramelessHelperConstants.Light
}
}
FramelessHelper{
id:framless_helper
onReady: {
if(appBar && !showSystemAppBar){
var title_bar = loader_title_bar.item
setTitleBarItem(title_bar)
moveWindowToDesktopCenter()
setHitTestVisible(title_bar.minimizeButton())
setHitTestVisible(title_bar.maximizeButton())
setHitTestVisible(title_bar.closeButton())
setWindowFixedSize(fixSize)
title_bar.maximizeButton.visible = !fixSize
if (blurBehindWindowEnabled)
window.background = undefined
}
window.show()
}
}
WindowLifecycle{
id:lifecycle
}