FluentUI/example/qml/component/CustomWindow.qml

72 lines
1.7 KiB
QML
Raw Normal View History

2023-05-22 16:17:51 +08:00
import QtQuick
2023-05-19 07:57:23 +08:00
import QtQuick.Layouts
import FluentUI
import org.wangwenx190.FramelessHelper
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
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)
2023-06-09 09:29:28 +08:00
moveWindowToDesktopCenter()
2023-05-19 07:57:23 +08:00
setHitTestVisible(title_bar.minimizeButton())
setHitTestVisible(title_bar.maximizeButton())
setHitTestVisible(title_bar.closeButton())
2023-06-09 09:29:28 +08:00
setWindowFixedSize(fixSize)
2023-05-19 07:57:23 +08:00
title_bar.maximizeButton.visible = !fixSize
if (blurBehindWindowEnabled)
2023-05-23 09:33:37 +08:00
window.backgroundVisible = false
2023-06-09 09:29:28 +08:00
window.show()
2023-05-19 07:57:23 +08:00
}
}
Connections{
target: FluTheme
function onDarkChanged(){
if (FluTheme.dark)
FramelessUtils.systemTheme = FramelessHelperConstants.Dark
else
FramelessUtils.systemTheme = FramelessHelperConstants.Light
}
}
2023-05-19 07:57:23 +08:00
function setHitTestVisible(com){
framless_helper.setHitTestVisible(com)
}
function setTitleBarItem(com){
framless_helper.setTitleBarItem(com)
}
}