This commit is contained in:
朱子楚\zhuzi
2023-05-19 07:57:23 +08:00
parent 2129301cd2
commit 15f90471dc
17 changed files with 108 additions and 165 deletions

View File

@ -90,18 +90,12 @@ set_target_properties(example PROPERTIES
WIN32_EXECUTABLE TRUE
)
#链接库
target_link_libraries(example PRIVATE
Qt6::Quick
fluentuiplugin
)
#导入头文件
set(QML_PLUGIN_DIRECTORY ${CMAKE_PREFIX_PATH}/qml/FluentUI)
target_include_directories(
example PRIVATE
${QML_PLUGIN_DIRECTORY}
FramelessHelper::Core
FramelessHelper::Quick
)
#安装

View File

@ -0,0 +1,60 @@
import QtQuick
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)
framless_helper.moveWindowToDesktopCenter()
setHitTestVisible(title_bar.minimizeButton())
setHitTestVisible(title_bar.maximizeButton())
setHitTestVisible(title_bar.closeButton())
framless_helper.setWindowFixedSize(fixSize)
title_bar.maximizeButton.visible = !fixSize
window.visible = true
}
}
function setHitTestVisible(com){
framless_helper.setHitTestVisible(com)
}
function setTitleBarItem(com){
framless_helper.setTitleBarItem(com)
}
}

View File

@ -2,8 +2,9 @@
import QtQuick.Controls
import QtQuick.Layouts
import FluentUI
import "../component"
FluWindow {
CustomWindow {
id:window
title:"关于"

View File

@ -2,8 +2,9 @@
import QtQuick.Layouts
import QtQuick.Controls
import FluentUI
import "../component"
FluWindow {
CustomWindow {
id:window
title:"登录"

View File

@ -4,9 +4,10 @@ import QtQuick.Controls
import QtQuick.Layouts
import Qt.labs.platform
import FluentUI
import "../component"
import "qrc:///example/qml/global/"
FluWindow {
CustomWindow {
id:window
title: "FluentUI"
@ -97,7 +98,7 @@ FluWindow {
z:999
items: ItemsOriginal
footerItems:ItemsFooter
topPadding:FluTools.isMacos() ? 20 : 5
topPadding:Qt.platform.os === FluTools.isMacos() ? 20 : 5
displayMode:MainEvent.displayMode
logo: "qrc:/example/res/image/favicon.ico"
title:"FluentUI"

View File

@ -2,8 +2,9 @@
import QtQuick.Controls
import QtQuick.Layouts
import FluentUI
import "../component"
FluWindow {
CustomWindow {
title:"视频播放器"
width: 640

View File

@ -2,8 +2,9 @@
import QtQuick.Controls
import QtQuick.Layouts
import FluentUI
import "../component"
FluWindow {
CustomWindow {
id:window
title:"SingleInstance"

View File

@ -2,8 +2,9 @@
import QtQuick.Controls
import QtQuick.Layouts
import FluentUI
import "../component"
FluWindow {
CustomWindow {
id:window
title:"SingleTask"

View File

@ -2,8 +2,9 @@
import QtQuick.Controls
import QtQuick.Layouts
import FluentUI
import "../component"
FluWindow {
CustomWindow {
id:window
title:"Standard"

View File

@ -4,20 +4,23 @@
#include <QDir>
#include <QQuickWindow>
#include <QProcess>
#include <FluGlobal.h>
#include <FramelessHelper/Quick/framelessquickmodule.h>
#include <FramelessHelper/Core/private/framelessconfig_p.h>
#include "lang/Lang.h"
#include "AppInfo.h"
#include "tool/IPC.h"
FRAMELESSHELPER_USE_NAMESPACE
int main(int argc, char *argv[])
{
FluentUI::preInit();
//将样式设置为Basic不然会导致组件显示异常
qputenv("QT_QUICK_CONTROLS_STYLE","Basic");
FramelessHelper::Quick::initialize();
QGuiApplication::setOrganizationName("ZhuZiChu");
QGuiApplication::setOrganizationDomain("https://zhuzichu520.github.io");
QGuiApplication::setApplicationName("FluentUI");
// QQuickWindow::setGraphicsApi(QSGRendererInterface::Software);
QGuiApplication app(argc, argv);
FluentUI::postInit();
AppInfo* appInfo = new AppInfo();
IPC ipc(0);
QString activeWindowEvent = "activeWindow";
@ -34,7 +37,7 @@ int main(int argc, char *argv[])
}
app.setQuitOnLastWindowClosed(false);
QQmlApplicationEngine engine;
FluentUI::initEngine(&engine);
FramelessHelper::Quick::registerTypes(&engine);
QQmlContext * context = engine.rootContext();
Lang* lang = appInfo->lang();
context->setContextProperty("lang",lang);