当前位置: 首页 > 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.dtcms.com/a/317319.html

相关文章:

  • 组合期权:股票担保策略
  • Suno API V5模型 python源码 —— 使用灵感模式进行出创作
  • 从原理图到PCB的布局
  • 优选算法1
  • 学习资料推荐
  • 商用音乐素材获取:素材平台、AI制作与版权考量
  • 如何将照片从POCO手机传输到Mac电脑
  • OpenAI GPT-OSS:首个可在笔记本上运行的推理模型
  • 科技云报到:Agent应用爆发,谁成为向上托举的力量?
  • 微算法科技(NASDAQ:MLGO)利用鸽群分散算法,提高区块链交易匹配算法效能
  • 【博客系统UI自动化测试报告】
  • 【递归完全搜索】USACO Bronze 2019 December - 奶牛排列Livestock Lineup
  • 每日算法刷题Day57:8.6:leetcode 单调栈6道题,用时2h
  • 【前端开发】五. ES5和ES6对比
  • Android 之 Kotlin中的符号
  • OpenObserve非sql模式 query editor 中 xx like ‘|’报错如何处理
  • RNN梯度爆炸/消失的杀手锏——LSTM与GRU
  • Disruptor 的原理、应用场景
  • jspdf或react-to-pdf等pdf报错解决办法
  • iOS混淆工具有哪些?在集成第三方 SDK 时的混淆策略与工具建议
  • Java Socket -- UDP通信
  • CSS 回流(Reflow)和重绘(Repaint)
  • C语言基础_排序算法和二分法查找
  • TDengine IDMP 背后的技术三问:目录、标准与情景
  • 自学嵌入式 day43 中断系统
  • 1-知识图谱—知识图谱表示与建模:给知识 “搭框架”,让每句话都有条理
  • Java学习第一百一十一部分——Jenkins(二)
  • 开源流媒体服务器ZLMediaKit 的Java Api实现的Java版ZLMediaKit流媒体服务器-二开视频对话
  • 周鸿祎:AI 时代安全智能体,能否重塑数字安全格局?
  • 【数据库】Oracle学习笔记整理之一:ORACLE的核心组成部分