当前位置: 首页 > news >正文

FluentUI的介绍与使用案列

1.下载地址

GitHub - zhuzichu520/FluentUI: FluentUI for QML

2.生成动态库

使用cmake构建动态库***d.dll与***.dll,编译环境需要如下的依赖:

需要记住编译的环境。生成的动态库在对应的qml路径下面,如:D:\Qt\***\msvc2019_64\qml\FluentUI

运行成功后会出现如下界面:

3.简单使用FluentUI库的demo

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.5
import FluentUI 1.0 //导入FluentUI库Window {width: 640height: 480visible: truetitle: qsTr("Test FluentUi")Button{id:id_btnQMlanchors.left: parent.leftanchors.leftMargin: 100anchors.top: parentanchors.topMargin: 50text: "这是一个QML Btn"onClicked: {id_btnQml.text = "点击btnQml"}}FluButton{id:id_btnFluanchors.left: parent.leftanchors.leftMargin: 100anchors.top: id_btnQMl.bottomanchors.topMargin: 50text: "这是一个FluentUI Btn"onClicked: {id_btnFlu.text = "点击btnFlu"}}
}

4.简单使用更多的FluentUI控间

import QtQuick 2.15
import QtQuick.Window 2.15
import FluentUI 1.0FluWindow {id: mainWindowvisible: trueminimumWidth: Screen.width * 0.8minimumHeight: Screen.desktopAvailableHeight * 0.8title: "Tutorial1-FirstWindow"// 用 appBar 属性注入自定义标题栏,而不是再手动写一个appBar: FluAppBar {title: mainWindow.titleshowDark: truedarkText: "Dark Mode"}closeListener: function (event) {dialog_close.open()event.accepted = false}// 退出确认对话框FluContentDialog {id: dialog_closetitle: "退出"message: "确定要退出程序吗?"negativeText: "最小化"buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.NeutralButton | FluContentDialogType.PositiveButtononNegativeClicked: mainWindow.hide()positiveText: "退出"neutralText: "取消"onPositiveClicked: Qt.quit()}
}

5.FluentUI能支持的控件

6.FluentUI与原生QtQuick控件的相同点

维度说明
技术栈二者都基于 Qt QML 引擎,语法完全一样(property、signal、onClicked…)。
布局方式都支持锚布局、Row/Column、Grid、Flow、Layout 等。
事件机制MouseArea、Keys、Touch、Wheel 等事件处理方式一致。
样式覆盖都支持 style 或自定义 background/contentItem 来二次设计。
跨平台Windows / Linux / macOS 均可运行,FluentUI 只是把 Qt 的渲染结果再“包一层”。

7.FluentUI与原生QtQuick控件的不同点

维度FluentUI 控件Qt Quick 原生控件
设计体系完整实现 Microsoft Fluent Design:Mica、Acrylic、光影、圆角、动效,主题跟随系统深浅色。仅提供 Material 和 Universal 两个可选样式,且需要手动切换。
组件粒度更细:同样一个按钮就拆成 FluButton / FluFilledButton / FluIconButton / FluTextButton 等不同语义。一个 Button 通过 style 去变体。
默认动效所有组件自带 PointerOver / Pressed / Reveal / Ripple 等动效,且无法关闭(除非改源码)。基本无动效,需要开发者自己写 Behavior 或 NumberAnimation
功能增强内置 无边框窗口 (FluWindow)、标题栏 (FluAppBar)、主题切换 (FluTheme) 等一整套解决方案。原生 Window 只有系统标题栏,无边框需自己写 FramelessHelper。
图标系统自带 Segoe Fluent Icons 字体,直接 icon: FluentIcons.Add 即可使用;支持 多状态图标(大小/颜色/旋转)。需自己准备 SVG/PNG 或 FontAwesome,无统一管理。
暗色/主题一行 FluTheme.darkMode = Dark 全局生效,所有组件自动切换;支持自定义强调色。必须逐个给 palette 赋值,或写多套 Component 切换。
高级控件提供 FluContentDialogFluInfoBarFluProgressRingFluTreeViewFluToggleSwitch 等“成体系”的高级控件。Qt Quick Controls 2 也有,但样式与 Fluent 差距大,需大量重写。
性能额外多了一层 C++ 插件封装,启动时多一次 dll/so 装载;运行期差异可忽略。纯 QML/JS,无额外二进制依赖。
依赖必须先用 CMake 编译/安装插件(dll+qmldir),否则 import FluentUI 1.0 报错。随 Qt 安装即自带,零依赖。
可定制深度想改“圆角 4→2 px”、阴影透明度等需改源码或 fork;样式变量集中但耦合度高。100 % QML 源码可见,想怎么改都行。
文档与示例目前以 GitHub README、示例 Demo 为主,API 文档仍在补全。Qt 官方文档、示例齐全。
http://www.lryc.cn/news/612162.html

相关文章:

  • K8S的POD数量限制
  • 《Transformer黑魔法Mask与Softmax、Attention的关系:一个-∞符号如何让AI学会“选择性失明“》
  • sqli-labs靶场less40-less45
  • 【python中级】关于Flask服务在同一系统里如何只被运行一次
  • 大型音频语言模型论文总结
  • 基于CentOS-7.6部署k8s-1.24.0,containerd作为CRI,nerdctl作为容器管理CLI
  • 高阶组件实现Button权限
  • 对 .NET线程 异常退出引发程序崩溃的反思
  • PowerShell部署Windows爬虫自动化方案
  • 玩转 InfluxDB 3:用 HTTP API 快速创建高效数据表
  • 【Linux】调试器gdb/cgdb的使用
  • 信号处理:信号产生
  • 张艺兴续约担任传音手机全球品牌代言人 携手共启创新征程
  • 企业级DDoS防护实战案例
  • 数字取证和网络安全:了解两者的交叉点和重要性
  • 什么是 Kafka 中的消息?它由哪些部分组成
  • 《设计模式之禅》笔记摘录 - 13.迭代器模式
  • JP3-4-MyClub后台前端(二)
  • leetcode 3479. 水果成篮 III 中等
  • 多端同步新解法:Joplin+cpolar联合通过开源设计实现跨平台无缝协作?
  • 【学习笔记之redis】删除缓存
  • vue3 el-select el-option 使用
  • 学习嵌入式之硬件——ARM体系
  • CubeFS存储(一)
  • 【前端开发】四. JS内置函数
  • [特殊字符]企业游学 | 探秘字节,解锁AI科技新密码
  • 【Linux】重生之从零开始学习运维之主从MGR高可用
  • 无人机航拍数据集|第6期 无人机垃圾目标检测YOLO数据集772张yolov11/yolov8/yolov5可训练
  • 【python】OpenCV—Defect Detection
  • AI浪潮下,FPGA如何实现自我重塑与行业变革