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

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.xdnf.cn/news/17251.html

相关文章:

  • Pytest项目_day06(requests中Session的用法)
  • Spring文件泄露与修复方案总结
  • Go语言版JSON转TypeScript接口生成器:支持智能递归解析与命名优化
  • [Python 基础课程]Set
  • [Oracle] ROUND()函数
  • ORACLE 19C建库时卡在46%、36%
  • 《设计模式之禅》笔记摘录 - 13.迭代器模式
  • Kaggle 经典竞赛泰坦尼克号:超级无敌爆炸详细基础逐行讲解Pytorch实现代码,看完保证你也会!!!
  • 数据结构 二叉树(1)二叉树简单了解
  • 指挥中心自动化的演变
  • 状态模式及优化
  • 3479. 水果成篮 III
  • InfluxDB 集群部署与高可用方案(一)
  • 《深入浅出Embedding》这本书
  • ipv6学习
  • RNN梯度爆炸/消失的杀手锏——LSTM与GRU
  • mysql优化策略
  • 《算法导论》第 7 章 - 快速排序
  • C++11之智能指针
  • Excel制作尖刀图,直观展示业绩涨跌
  • SELinux加固Linux安全2
  • Anthropic MCP架构深度解析:下一代AI工具集成协议的设计哲学
  • AT32的freertos下modbus TCP移植
  • git push 提示:com port 443 after 75002 ms: Couldn#039;t connect to server
  • TFTP: Linux 系统安装 TFTP,文件系统启动后TFTP使用
  • EasyExcel高效工具类:简化Excel导入导出,支持多Sheet与枚举转换
  • 磁悬浮转子变转速工况下的振动抑制全解析
  • 论文学习19:Multi-view Aggregation Network for Dichotomous Image Segmentation
  • 系统启动项管理工具对美国服务器性能基线的验证标准
  • 快手小店客服自动化回复