「 DelegateUI 」Ant-d 风格的 Qt Qml UI 套件
写在前面:关于为什么要写一套新的UI框架
一方面,Qt Qml 生态中缺乏一套既遵循现代设计规范(自带的功能少且丑,懂得都懂),又能深度整合 Qt 生态的开源组件库。
另一方面,Qt Qml 中也有一些其他方案,例如 FluentUI Qml,然鹅这个库老版直接不维护( 新版不开源且 Qt6.8+ 官方已经实现 WinUI3 风格组件 )。
因此,我决定自己写一套,但需要遵循一套现代UI设计规范,然后个人比较喜欢 Ant-d 的样式和风格,也是大厂(阿里)出品,值得信赖。
最后,DelegateUI 应运而生,它不仅填补了这一空白,更通过极简的接入方式、强大的主题系统和跨平台一致性,为开发者提供了一套开箱即用的解决方案,并且完全开源免费。
项目地址:
-
🛠️ GitHub仓库 | 🎯 Gitee镜像 | 📖 快速入门
-
💬 欢迎大家加入
QQ群(490328047)/Wx群(添加MenPenS0612)反馈和提交BUG!
📚 组件清单
DelegateUI 基本实现了 Ant-d 的核心样式和交互范式,目前提供以下组件:
通用组件
| 组件名 | 组件描述 | 文章 |
|---|---|---|
DelWindow | 跨平台无边框窗口的最佳实现,基于 QWindowKit。 | 文章 |
DelButton | 按钮(支持多种类型)。 | 文章 |
DelIconButton | 图标按钮。 | 文章 |
DelCaptionButton | 标题栏按钮。 | 文章 |
DelIconText | 图标文本(集成 Ant-d 图标体系)。 | 文章 |
DelCopyableText | 可复制文本。 | 文章 |
DelRectangle | 矩形(可设置任意圆角)。 | 文章 |
布局组件
| 组件名 | 组件描述 | 文章 |
|---|---|---|
DelDivider | 分割线(支持水平/垂直方向)。 | 文章 |
导航组件
| 组件名 | 组件描述 | 文章 |
|---|---|---|
DelMenu | 菜单(多级折叠支持,可无限嵌套)。 | 文章 |
DelScrollBar | 滚动条(支持垂直/水平方向)。 | 文章 |
数据录入
| 组件名 | 组件描述 | 文章 |
|---|---|---|
DelSwitch | 开关(支持多种类型)。 | 文章 |
DelSlider | 滑动输入条(支持多种类型)。 | 文章 |
DelSelect | 选择器。 | 文章 |
DelInput | 输入框。 | 文章 |
DelOTPInput | 一次性口令输入框(用于密码/验证码/激活码)。 | 文章 |
DelRate | 星级评分(支持多种类型)。 | 文章 |
DelRadio | 单选框(支持多种类型)。 | 文章 |
DelRadioBlock | 单选块。 | 文章 |
DelCheckBox | 多选框。 | 文章 |
DelTimePicker | 时间选择框。 | 文章 |
数据展示
| 组件名 | 组件描述 | 文档 |
|---|---|---|
DelAvatar | 头像。 | DelAvatar说明 |
DelToolTip | 文字提示。 | 文章 |
DelTourFocus | 漫游焦点。 | 文章 |
DelTourStep | 漫游式引导。 | 文章 |
DelTabView | 标签视图。 | 文章 |
DelCollapse | 折叠面板。 | 文章 |
DelCard | 卡片。 | 文章 |
效果组件
| 组件名 | 组件描述 | 文章 |
|---|---|---|
DelAcrylic | 亚克力效果。 | 文章 |
工具组件
| 组件名 | 组件描述 | 文章 |
|---|---|---|
DelAsyncHasher | 异步哈希器。 | 文章 |
反馈组件
| 组件名 | 组件描述 | 文章 |
|---|---|---|
DelWatermark | 水印工具。 | 文章 |
DelDrawer | 抽屉。 | 文章 |
🔄 组件持续更新中,完整列表请参考 Ant Design 组件文档,欢迎提交 Issue 优先级开发!
核心亮点:DelegateUI 的独特之处
-
📦 开箱即用的整套 Ant-d 风格组件
-
基于
Ant-d的交互与视觉规范,提供按钮、表单、弹窗等高频组件,无需从零设计。 -
示例:目前已经实现 30+ 组件(持续添加中),可直接复用,快速构建企业级应用界面。
-
基于代理的扩展(熟悉
qml delegate的应该不陌生),极大提升了组件定制的灵活性。
-
-
🎨 主题定制: 参考
Ant-d源码,实现了一套强大的主题系统-
动态主题模式切换(
Light/Dark模式)。 -
动态色彩生成,基于 Ant-d 色彩算法,保证最佳视觉效果。
-
动态字体切换,基于 Ant-d 字体算法,保证最佳视觉效果。
-
组件级主题定制,可自由定制内部任何组件主题。
-
企业可轻松适配品牌视觉,开发者无需深入 Qml 样式细节。
-
-
💻 跨平台:一次开发,多端运行
-
基于 Qml 的跨平台能力,支持
Windows/Linux/Mac等主流系统,未来计划扩展至移动端。 -
构建流程标准化(
CMake + Qt6),避免平台差异导致的兼容性问题。
-
-
🚀 极简集成:作为 Qml 插件集成,5分钟快速上手
-
通过清晰的
CMake指令与代码示例,开发者可快速将DelegateUI整合到现有项目中。 -
提供完整的文档(通过
Grallery)与社区支持(Github/QQ/WX群),降低学习门槛。
-
目标用户:哪些需要关注这个库
-
C++/Qt/Python开发者:希望提升界面美感和开发效率,避免重复造轮子。
-
UI设计师:快速设计出符合设计规范的界面,减少设计时间。
-
技术决策者:寻找稳定、可定制、开源的UI框架以降低长期维护成本。
结语:加入现代UI开发的新范式
DelegateUI 不仅是一个组件库,更是一种对高效开发的追求。
无论你是想开发更现代的产品,还是希望探索 Qml 的更多可能性,亦或是对源码感兴趣,都可以持续关注这个项目。
相关文章:
「 DelegateUI 」Ant-d 风格的 Qt Qml UI 套件
写在前面:关于为什么要写一套新的UI框架 一方面,Qt Qml 生态中缺乏一套既遵循现代设计规范(自带的功能少且丑,懂得都懂),又能深度整合 Qt 生态的开源组件库。 另一方面,Qt Qml 中也有一些其他方案,例如 FluentUI Qml…...
Redis--Set类型
目录 一、引言 二、介绍 三、命令 1.sadd,smembers,sismember 2.spop,srandmember 3.smove,srem 4.sinter,sinterstore 5.sunion,sunionstore,sdiff,sdiffstore 四、内部编码 1.intset 2.hashtable 五、应用场景 1.使用Set保存用…...
【0013】Python数据类型-列表类型详解
如果你觉得我的文章写的不错,请关注我哟,请点赞、评论,收藏此文章,谢谢! 本文内容体系结构如下: Python列表,作为编程中的基础数据结构,扮演着至关重要的角色。它不仅能够存储一系…...
文件上传靶场(10--20)
目录 实验环境: 具体内容实现: 第十关(双写绕过): 第十一关:(%00截断,此漏洞在5.2版本中) 正确用法 错误用法 思路: 操作过程: 第十二关…...
C# 检查系统是否开启 Hyper - V
C# 检查系统是否开启 Hyper - V 在使用 C# 开发应用程序时,有时需要判断系统是否开启了 Hyper - V 功能。Hyper - V 是 Windows 系统提供的一款虚拟化技术,以下为你介绍几种在 C# 中检查系统是否开启 Hyper - V 的方法。 方法一:通过查询系…...
【前端】BOM DOM
两天更新完毕,建议关注收藏点赞 友情链接: HTML&CSS&LESS&Bootstrap&Emmet Axios & AJAX & Fetch BOM DOM 待整理 js2 Web API 是浏览器提供的一套操作浏览器功能和页面元素的 API ( BOM 和 DOM)。官方文档点击跳转 目录 BOMDOM…...
K8s 1.27.1 实战系列(十一)ConfigMap
ConfigMap 是 Kubernetes 中管理非敏感配置的核心资源,通过解耦应用与配置实现灵活性和可维护性。 一、ConfigMap 的核心功能及优势 1、配置解耦 将配置文件(如数据库地址、日志级别)与容器镜像分离,支持动态更新而无需重建镜像。 2、多形式注入 环境变量:将键值…...
计算机网络——IP、MAC、ARP
一、IP地址 1. 什么是IP地址? IP地址(Internet Protocol Address)是互联网中设备的唯一逻辑标识符,类似于现实生活中的“门牌号”。它分为 IPv4(32位,如 192.168.1.1)和 IPv6(128位…...
代码优化——基于element-plus封装组件:表单封装
前言 今天实现一个基于element-plus表单组件的二次封装,什么是二次封装?查看以下表单,传统表单组件是不是用<el-form>嵌套几个<el-form-item>即可实现,那么一个表单可不可以实现,传入一个对象给封装组件&a…...
C/C++中使用CopyFile、CopyFileEx原理、用法、区别及分别在哪些场景使用
文章目录 1. CopyFile原理函数原型返回值用法示例适用场景 2. CopyFileEx原理函数原型返回值用法示例适用场景 3. 核心区别4. 选择建议5. 常见问题6.区别 在Windows系统编程中,CopyFile和CopyFileEx是用于文件复制的两个API函数。它们的核心区别在于功能扩展性和控制…...
qt 多进程使用共享内存 ,加速数据读写,进程间通信 共享内存
Summary: 项目中我们有时需要使用共享内存共享数据,这样,数据不用进程IO读写,加进数据加载和落地; 程序退出时,再保存到本地;速度提升数十倍; Part1:QSharedMemory Windows平台下进程间通信…...
HTML左右分页2【搬代码】
HTML左右分页2 html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>左右分页布局</title>&l…...
【鸿蒙开发】OpenHarmony调测工具hdc使用教程(设备开发者)
00. 目录 文章目录 00. 目录01. OpenHarmony概述02. hdc简介03. hdc获取04. option相关的命令05. 查询设备列表的命令06. 服务进程相关命令07. 网络相关的命令08. 文件相关的命令09. 应用相关的命令10. 调试相关的命令11. 常见问题12. 附录 01. OpenHarmony概述 OpenHarmony是…...
【贪心算法】简介
1.贪心算法 贪心策略:解决问题的策略,局部最优----》全局最优 (1)把解决问题的过程分成若干步 (2)解决每一步的时候,都选择当前看起来的“最优”的算法 (3)“希望”得…...
transformer模型介绍——大语言模型 LLMBook 学习(二)
1. transformer模型 1.1 注意力机制 **注意力机制(Attention Mechanism)**在人工智能中的应用,实际上是对人类认知系统中的注意力机制的一种模拟。它主要模仿了人类在处理信息时的选择性注意(Selective Attention)&a…...
【GPT入门】第11课 FunctionCall调用本地代码入门
【GPT入门】第11课 FunctionCall调用代码入门 1. 手撕FunctionCall2.代码3.functionCall的结果 1. 手撕FunctionCall 为了了解,funcationCall底层,手写一个functionCall多方法,并调用,体验 思路: 任务:让…...
LangChain教程 - Agent -之 ZERO_SHOT_REACT_DESCRIPTION
在构建智能 AI 助手时,我们希望模型能够智能地调用工具,以便提供准确的信息。LangChain 提供了 AgentType.ZERO_SHOT_REACT_DESCRIPTION,它结合了 ReAct(Reasoning Acting)策略,使得 LLM 可以基于工具的描…...
GStreamer —— 2.17、Windows下Qt加载GStreamer库后运行 - “播放教程 5:色彩平衡“(附:完整源码)
运行效果 介绍 亮度、对比度、色相和饱和度是常见的视频调整, 在 GStreamer 中统称为 Color Balance 设置。 本教程展示了: • 如何找出可用的色彩平衡通道 • 如何更改它们 允许访问颜色平衡设置。如果 元素支持这个接口,只需将其转发给应用…...
串口通信ASCII码转16进制及C#串口编程完整源码下载
在工业自动化、嵌入式系统及物联网以行业中,串口编程非常重要。 串口编程,重点在于串口数据通信和数据处理。 在C#中,System.IO.Ports命名空间提供了SerialPort类,用于实现串口通信。 串口程序的开发主要包括以下几点 1.引用命…...
解决vscode中出现“无法将pip项识别...“问题
问题 遇见问题如下: 查看pip 通过 winR ,输入 cmd,进入终端,搜索 where pip。 发现 pip 查不出来,然后进入文件资源管理器,搜索 Scripts 文件夹,如果没有找到可能是电脑没有下载 python。 点击…...
nacos下载及安装
下载官方最新稳定版 github下载较慢,推荐下面的下载链接 Nacos Server 下载 | Nacos 官网 点击下载和试用下载最新稳定版 Nacos Server 下载 | Nacos 官网 配置检查(可选) 默认情况下,Nacos 使用内置的 Derby 数据库&#x…...
C++从零实现Json-Rpc框架
文章目录 一、项目介绍1. 基本原理2. 涉及到的技术栈3. 最终实现的效果 二、 第三方库的介绍与使用1. JsonCpp库Json的数据格式JsonCpp介绍封装Json工具类 2. muduo库muduo库是什么Muduo库常见接口介绍 3. C11异步操作std::future 三、框架设计1. 服务端模块划分NetworkProtoco…...
rom定制系列------小米note3 原生安卓15 批量线刷 默认开启usb功能选项 插电自启等
小米Note 3搭载骁龙660处理器,1200万像素广角镜头、俗称大号版的小米6,官方最终版为12.0.1稳定版安卓9的固件。客户需要运行在安卓15的rom。根据原生官网的rom修改一些功能选项。以便客户操作需求。 定制资源说明 根据客户需求采用安卓15原生系统为底包…...
使用jest测试用例之入门篇
Jest使用 Jest 是由 Facebook 开发的一个 js 测试框架,jest 主要侧重于被用于做单元测试和集成测试 安装 npm i jest -D运行 **package.json**里面配置命令 // scripts添加测试脚本 {"test": "jest" /* 运行后便会使用 jest 执行所有的 .t…...
大数据学习(59)-DataX执行机制
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦ᾑ…...
YashanDB认证,YCA证书认证教程,免费证书,内含真题考试题库及答案——五分钟速成
目录 一.账号及平台注册登录流程 二.登录进行设备调试核验 三.考试(考完获取分数) 四.获取证书 五.题库及答案 一.账号及平台注册登录流程 1-点击这里进行账号注册(首次学习必须先注册,有账号之后可以直接在2号链接登录&#…...
消防行业如何借助 TDengine 打造高效的数据监控与分析系统
小T导读:本篇文章来自“2024,我想和 TDengine 谈谈”征文活动的优秀投稿,深入探讨了如何在消防行业中运用 TDengine 进行业务建模。文章重点介绍了如何通过 TDengine 的超级表、标签设计和高效查询功能,有效管理消防监控系统中的时…...
自然语言处理中的语音识别技术:从声波到语义的智能解码
引言 语音识别(Automatic Speech Recognition, ASR)是自然语言处理(NLP)的关键分支,旨在将人类语音信号转化为可处理的文本信息。随着深度学习技术的突破,语音识别已从实验室走向日常生活,赋能…...
010-Catch2
Catch2 一、框架简介 Catch2 是一个基于 C 的现代化单元测试框架,支持 TDD(测试驱动开发)和 BDD(行为驱动开发)模式。其核心优势在于: 单头文件设计:v2.x 版本仅需包含 catch.hpp 即可使用自然…...
TypeScript类:面向对象编程的基石
一、从现实世界到代码世界 想象你要建造一栋房子,首先需要一张设计蓝图——它定义了房屋的结构(几个房间)、功能(卧室/厨房)和特性(材料/颜色)。在TypeScript中,class就是这个设计蓝…...
