『duilib』—— Windows DirectUI 界面库标杆

2026/06/08 dev duilib · directui · windows · cpp · gui-framework 1590 字 · 约 5 分钟 阅读
duilib 是 Windows 下免费开源的 DirectUI 界面库,所有控件自绘无 HWND 句柄,包体仅 ~500KB,被腾讯、网易等国内互联网公司广泛用于 PC 客户端开发。

项目简介

duilib 是一款 Windows 平台下的免费开源 DirectUI 界面库,所有控件均为自绘实现,不依赖原生 HWND 句柄。自 2013 年发布以来,duilib 已成为国内 Windows 桌面 UI 框架的标杆项目,被大量互联网公司的 PC 客户端产品所采用。

与传统的 Windows UI 开发方式(如 MFC、Win32 API)不同,DirectUI 将整个窗口作为一个绘制表面,由框架统一管理和渲染所有子控件,从而实现更灵活的界面定制、更平滑的动画效果和更好的性能表现。

GitHub 数据

指标数据
Stars5,937
Forks1,984
LicenseMIT
LanguageC++
创建时间2013-12-27
最后更新2026-03-04(活跃维护中)

核心功能

  • DirectUI 渲染引擎:纯自绘渲染管线,所有控件无 HWND 句柄,减少系统资源占用
  • 丰富的内置控件:Button、Edit、List、Tree、Combo、RichEdit、Slider、Progress、Tab 等数十种标准控件
  • XML + C++ 双模布局:支持通过 XML 声明式布局界面,也支持纯 C++ 代码动态构建
  • 虚拟列表与大数据优化:针对万级数据量的列表控件做虚拟化渲染优化
  • 皮肤与主题系统:支持运行时切换皮肤/主题,全局样式统一管理
  • 动画引擎:内置补间动画支持,轻松实现过渡、淡入淡出、滑动等效果
  • 多语言国际化:完善的字符串资源管理和语言切换机制
  • DuiDesigner 可视化设计器:所见即所得的界面设计工具,拖拽布局、实时预览

技术栈

技术说明
语言C++11/14
构建系统CMake
默认渲染GDI / GDI+
可选渲染Skia(跨平台 2D 图形库)
包管理vcpkg 可安装
依赖极轻量,无重型第三方依赖

使用方式

  1. 通过 vcpkg 安装:vcpkg install duilib
  2. 或直接从 GitHub 克隆源码,集成到 CMake 项目中
  3. 使用 DuiDesigner 可视化设计器进行界面布局
  4. 通过 XML 定义 UI 结构,C++ 绑定事件与逻辑

典型用户

  • 腾讯:TIMSDK 桌面端使用 duilib 构建界面
  • 网易:NIM(网易云信)PC SDK 采用 duilib
  • 众多国内互联网公司的 PC 客户端产品

适用场景

  • Windows PC 桌面客户端开发
  • 即时通讯(IM)软件
  • 视频会议 / 直播客户端
  • 股票交易 / 金融终端
  • 安全工具(杀毒、防火墙)
  • 企业内部管理工具
  • 对安装包体积敏感的场景

竞品对比

特性duilibQtwxWidgetsElectronMFC
跨平台❌ 仅 Windows✅ Windows/macOS/Linux✅ 多平台✅ 全平台❌ 仅 Windows
安装包体积~500KB 极小数十 MB数 MB100MB+(含 Chromium)数 MB
渲染方式DirectUI 自绘QPainter / 原生原生控件HTML/CSS/JS原生控件
学习曲线低(中文文档丰富)中高低(Web 技术)
控件丰富度★★★★☆★★★★★★★★★☆★★★★☆(Web 生态)★★★☆☆
开发语言C++C++/QML/PythonC++/PythonJS/TS/HTMLC++
中文生态★★★★★ 极好★★☆☆☆★☆☆☆☆★★★☆☆★★★★☆
维护状态活跃活跃缓慢活跃微软停止支持
典型领域国内 PC 客户端跨平台桌面应用跨平台原生应用跨平台 Web 套壳遗留系统维护

duilib 的核心优势

  1. 极小包体:核心库仅约 500KB,适合对安装包大小有严格要求的场景
  2. 极高渲染性能:DirectUI 架构减少窗口句柄开销,万级控件场景表现优异
  3. 完善的中文文档生态:国内社区积累了大量教程、博客和示例项目
  4. 成熟的企业级验证:经过腾讯、网易等头部互联网公司海量用户检验

参考资料

  • GitHub 仓库:https://github.com/duilib/duilib
  • 官方文档:https://github.com/duilib/duilib/wiki
  • vcpkg 安装指南:https://vcpkg.io/en/port/duilib

文档信息

加载评论…