自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 nim_duilib 代码深度分析

摘要:nim_duilib是一个基于duilib深度优化的跨平台C++界面库,采用DirectUI理念和XML驱动布局设计。核心架构包含六大模块:XML解析(pugixml)、布局引擎(12种布局)、渲染引擎(Skia)、控件体系(50+控件)、跨平台层(SDL3)和资源管理(GlobalManager)。通过目录解耦、模块化设计、性能优化(内存/渲染/虚表)和第三方依赖统一管理,实现了高扩展性、跨平台兼容性和高性能。相比原duilib,在功能完善性、代码可维护性和运行效率方面均有显著提升。

2026-03-05 08:03:16 323

原创 Windows系统中使用MinGW-W64(gcc/g++或LLVM)编译Skia源码的方法

本文介绍了在Windows系统中使用MinGW-W64(gcc/g++或LLVM)编译Skia图形库的方法。主要内容包括:1) 准备工作,安装Python、Git和MinGW-W64编译环境;2) 提供自动化脚本编译方式;3) 详细手动编译步骤,包括获取Skia源码、应用修改补丁,以及分别使用LLVM和gcc/g++编译器进行x86/x64平台编译的配置参数。该方法专门适配nim_duilib项目使用,编译时需要更新部分源码并使用expat库。文档最后给出了编译完成后的库文件存放位置。

2026-02-13 15:53:21 897

原创 FreeBSD系统中使用clang/clang++编译Skia源码的方法

/develop。

2026-02-13 15:52:32 409

原创 nim_duilib中对CEF的支持

CEF控件(CefControl)是nim_duilib对libcef(Chromium Embedded Framework)的封装,将Chromium浏览器功能集成到duilib界面库中。该控件支持HTML5渲染、JavaScript执行等现代网页功能,提供窗口模式和离屏渲染两种实现方式。使用时需下载对应版本的libcef二进制文件(32位/64位)放置到指定目录,并通过属性文件或手动配置工程属性进行集成。项目提供简单浏览器示例和多标签浏览器示例,支持最新版和109版CEF,需注意不同版本对操作系统的兼

2026-02-13 15:51:21 628

原创 nim_duilib中的菜单

本文介绍了基于WindowImplBase实现的菜单系统,主要由Menu和MenuItem两个类组成。该系统提供了丰富的菜单功能,包括图标显示、勾选框、多级菜单、分割条、动态修改菜单项以及在菜单中插入非菜单控件等特性。通过示例XML配置展示了菜单的结构设计,包含一级、二级、三级菜单项的实现方式,以及如何在菜单中嵌入普通控件(如音量滑块)和添加分割线。系统支持两种子菜单实现形式,既保持旧版本兼容性又提供新的扩展格式,使菜单结构更加灵活多样。

2025-11-17 11:20:43 876

原创 nim_duilib中的基础控件

摘要 本文档详细介绍了Control基类控件的属性配置,该控件作为所有UI控件的基类提供通用属性设置。主要内容包括: 基础属性:宽度(width)、高度(height)支持数值/百分比/自适应模式,以及最小/最大尺寸限制 布局属性:边距(margin/padding)、对齐方式(halign/valign)、浮动定位(float) 视觉样式:背景/前景色、边框样式(大小/颜色/圆角)、状态颜色(正常/悬浮/按下/禁用) 图片资源:背景图(bkimage)、状态图片(不同交互状态) 交互功能:工具提示(too

2025-11-17 11:19:02 1063

原创 nim_duilib中的容器与布局管理

本文介绍了UI界面库中控件、容器与布局的基本概念。控件(Control)是基础组件,包含可见性、位置、大小等属性;容器(Box)是管理子控件的类,具有多种布局方案,包括水平/垂直布局、流式布局、瓦片布局等;布局(Layout)是具体实现布局方案的类,应用层通常不直接使用。各类容器对应不同的布局实现,如HBox使用水平布局,VBox使用垂直布局等。文中还详细列出了各类容器和布局的属性及功能说明。

2025-11-17 11:17:48 1348

原创 nim_duilib的窗口的属性

摘要 本文详细介绍了窗口的各项属性配置,主要分为标题栏控制、拖放功能、窗口阴影、窗口尺寸、窗口形状和窗口绘制六类属性。属性表包含属性名称、分类、默认值、参数类型、关联函数及用途说明,如caption设置标题栏边距,shadow_type控制阴影样式,size定义窗口初始大小等。文章还提供了XML配置示例,并标注了相关实现代码位置,为开发者调整窗口外观和行为提供了全面参考。

2025-11-17 11:15:48 597

原创 nim_duilib的全局样式

全局样式(Global)提供统一管理字体、颜色和图片资源的功能,减少代码冗余并提高开发效率。主要内容包括: 字体管理:支持系统字体和自定义字体文件,可定义字体ID、大小、粗斜体等属性 颜色定义:支持ARGB/RGB格式和预定义颜色别名 图片资源:支持相对/绝对路径指定图片,可调整尺寸 文件结构:所有资源文件需放在指定目录下,由GlobalManager统一加载 全局样式通过XML配置实现资源统一管理,便于项目维护和界面风格统一。

2025-11-17 11:14:07 935

原创 nim_duilib界面库快速上手(Windows系统,VS 2022)

本文介绍了如何在Windows系统下使用VS 2022快速部署基于nim_duilib界面的应用程序。主要内容包括:获取并编译nim_duilib和skia源码、创建基础工程、配置项目属性、引入线程库以及创建一个简单窗口。文章提供了详细的步骤指导,包括代码示例和配置说明,帮助开发者快速上手使用nim_duilib界面库。重点介绍了项目结构设置、资源引用、主线程实现和窗口创建等关键环节,并附有相关截图说明,便于开发者理解和操作。

2025-11-15 21:48:06 986

原创 macOS系统中使用clang/clang++编译Skia源码的方法

本文介绍了在macOS系统中使用clang/clang++编译器编译Skia源码的方法。主要内容包括:1)准备工作,包括安装Xcode命令行工具、Homebrew、cmake、ninja和gn;2)推荐使用自动编译脚本完成源码下载和编译;3)详细的手动编译步骤,包括获取Skia源码、更新修改代码,以及针对arm64和x64架构的编译命令。该方法主要为适配nim duilib项目使用Skia库而设计,编译后的库文件将存放在skia/out子目录中。文中还提供了相关资源链接供参考。

2025-11-15 21:30:54 563

原创 Windows系统中使用MinGW-W64(gcc/g++或LLVM)编译Skia源码的方法

本文档详细介绍了在Windows 11系统下使用MinGW-W64(gcc/g++或LLVM-MinGW)编译Skia图形库的方法。主要内容包括:准备工作(安装Python、Git和MinGW-W64环境)、获取Skia源码并应用必要的修改、两种编译器(LLVM-MinGW和gcc/g++)的完整编译步骤,以及提供的一键式自动化编译脚本。文档特别说明此编译方法是为适配nim duilib项目而设计,若用于其他用途可能需要调整参数。编译结果将生成在skia/out子目录中,按不同编译选项分类存放。

2025-05-24 13:27:07 974

原创 OpenKylin开放麒麟系统中使用LLVM或者gcc编译Skia源码的方法

本文介绍在OpenKylin系统中使用LLVM/gcc编译Skia源码的方法,主要适配nim duilib项目。首先需更新系统和安装编译依赖(gcc、cmake等),然后获取Skia源码并更新部分代码。提供一键编译脚本,也详细说明了手动编译步骤(gn生成配置+ninja编译)。注意使用LLVM时可能出现标准库头文件识别问题。编译结果存放在skia/out目录中,相关资源链接包括skia_compile和nim_duilib项目仓库。

2025-02-08 11:38:35 481

原创 Fedora系统中使用LLVM或者gcc编译Skia源码的方法

本文介绍在Fedora 40系统中使用LLVM或gcc编译Skia源码的方法,主要适配nim duilib项目。首先需安装必要的开发工具和依赖库,提供了一键完成所有操作的脚本方案。详细步骤包括获取Skia源码、更新修改代码,以及分别使用LLVM(clang)和gcc两种编译器进行编译的配置命令。编译结果将生成在skia/out目录下。文中还提供了相关资源链接,包含Skia编译文档库和nim duilib代码库。该教程假设工作目录为/home/develop,用户可根据实际情况调整路径。

2025-02-08 11:37:40 511

原创 OpenEuler系统中使用LLVM或者gcc编译Skia源码的方法

本文介绍了在OpenEuler 24.03系统中使用LLVM或gcc编译Skia源码的方法。主要内容包括:1) 准备工作:系统升级、安装UKUI桌面环境和依赖软件;2) 提供一键编译脚本简化流程;3) 详细说明获取Skia源码和更新代码的步骤;4) 分别给出LLVM和gcc两种编译器的具体编译命令。该方法专门适配nim duilib项目使用,编译生成的库文件位于skia/out子目录。文中还提供了相关资源链接,包括Skia编译文档库和nim duilib代码库。

2025-02-08 11:36:43 710

原创 Debian系统中使用LLVM或者gcc编译Skia源码的方法

本文介绍了在Debian 12.7系统中使用LLVM或gcc编译Skia图形库源码的方法。主要内容包括:1)安装必要的编译工具链和依赖项;2)提供一键式编译脚本;3)详细说明获取Skia源码并更新修改的步骤;4)分别介绍使用LLVM(clang)和gcc的编译命令及参数配置。该编译方法专为适配nim_duilib项目设计,需注意源码更新和使用expat第三方库。编译结果将输出到skia/out子目录,按不同编译器选项分类存放。文中还提供了相关资源链接,方便开发者参考。

2025-02-08 11:35:08 439

原创 OpenSuse系统中使用LLVM或者gcc编译Skia源码的方法

本文详细介绍了在OpenSuse Leap 15.6系统下编译Skia源码的步骤,适用于适配nim duilib项目。首先,系统需安装必要的工具如gcc、gdb、make、python3、cmake、git、ninja、gn、LLVM等。接着,获取Skia源码并更新相关依赖。编译过程可选择使用LLVM或gcc/g++编译器,通过gn生成构建文件,并使用ninja进行编译。本文还提供了资源链接,供进一步参考。

2024-11-26 14:36:01 482

原创 UbuntuKylin优麒麟系统中使用LLVM或者gcc编译Skia源码的方法

本文档介绍了在UbuntuKylin-24.10系统中使用LLVM或gcc编译Skia源码的方法。主要内容包括:1)准备工作,安装必需软件和依赖项;2)提供一键完成所有操作的自动化脚本;3)获取Skia源码并更新修改代码的具体步骤;4)分别使用LLVM和gcc编译器的详细编译命令;5)相关资源链接。该方法主要适配nim duilib项目使用Skia库的需求,编译过程中需注意源码更新和使用expat第三方库。编译完成的库文件将生成在skia/out目录的相应子目录中。

2024-11-26 14:33:31 786

原创 Ubuntu系统中使用LLVM或者gcc编译Skia源码的方法

本文介绍了在Ubuntu 24.04系统中使用LLVM或gcc编译Skia源码的方法,主要用于适配nim duilib项目。准备工作包括安装必要的编译工具链和依赖库,提供了两种编译方式:使用LLVM(clang/clang++)或gcc/g++。文档包含详细的安装步骤、一键编译脚本(build.sh)以及源码更新方法,编译结果会输出到skia/out目录下。文中特别说明需要更新部分Skia源码才能成功编译,并提供了相关资源链接。

2024-11-25 21:58:05 1363

原创 中科方德系统中使用LLVM或者gcc编译Skia源码的方法

本文档详细介绍了在中科方德V5.0系统中使用LLVM或gcc编译Skia源码的方法。主要内容包括:1)系统准备和依赖安装;2)提供一键编译脚本;3)源码获取和更新步骤;4)分别使用LLVM和gcc的编译命令及参数配置。该方法专门适配nim_duilib项目,编译结果将输出到skia/out目录。文档还提供了资源链接,包括Skia编译文档库和nim_duilib代码库。注意编译前需更新部分源码并使用expat第三方库。

2024-11-25 20:53:31 1081

原创 nim duilib: 一款支持Windows/Linux平台的C++界面库简介

nim duilib 是一个界面库,包含了一整套桌面软件的开发部件,使用C++语言开发,支持Windows平台和Linux平台。nim duilib是在NIM_Duilib_Framework库的基础上进行了代码功能完善和扩展,但由于代码结构和资源XML文件的格式均有调整,所以不能直接兼容基于NIM_Duilib_Framework开发的程序,但代码和资源XML迁移的难度不大。您可以直接使用nim duilib界面库来开发常用的桌面应用,以简化应用程序的UI开发工作。

2024-11-21 16:40:38 1604

原创 统信UOS系统中使用LLVM或者gcc编译Skia源码的方法

本文档介绍了在统信UOS 20专业版系统中使用LLVM或GCC编译Skia源码的方法,主要用于适配nim duilib项目。由于系统自带的开发工具版本较低,需要先编译安装新版开发工具链,包括:升级系统、安装依赖软件包、编译安装最新版binutils(2.43.1)、Python(3.13.0)、GCC(14.2.0)并配置环境变量。文档详细提供了各工具的下载地址、编译参数和安装步骤,特别说明了编译过程中可能遇到的问题及解决方法。完成工具链更新后,后续将进行LLVM编译安装和Skia源码的编译工作。

2024-11-21 12:14:17 1028

原创 Windows系统中使用LLVM或Visual Studio 2022编译Skia源码的方法

本文介绍了在Windows 11系统中使用LLVM或Visual Studio 2022编译Skia图形库的方法。主要内容包括:准备工作(安装Python、Git、VS2022和LLVM20.1.0);提供一键式编译脚本;获取Skia源码并应用必要修改;详细说明使用LLVM编译器分别编译x64和x86版本的Debug/Release静态库的步骤。特别说明该方法是为适配nim duilib项目而设计,Debug版本采用Release参数编译仅替换运行时库为/MTd以提升性能。文档还提醒源码需特定修改(含exp

2024-05-12 20:09:55 1796 1

原创 nim duilib:界面库的示例程序预览

nim duilib的示例程序预览:在获取nim duilib 的源码以后,在examples 目录中包含了一些示例程序,可以参考这些示例程序来完善自己的应用程序。这里将基于nim duilib开发的示例程序做个预览,以便于了解界面库中各种功能组件的实际开发效果。

2024-04-29 15:00:25 853

原创 nim duilib: 一款支持Windows/Linux平台的C++界面库简介

nim duilib 是一个界面库,包含了一整套桌面软件的开发部件,使用C++语言开发,支持Windows平台和Linux平台。nim duilib是在NIM_Duilib_Framework库的基础上进行了代码功能完善和扩展,但由于代码结构和资源XML文件的格式均有调整,所以不能直接兼容基于NIM_Duilib_Framework开发的程序,但代码和资源XML迁移的难度不大。您可以直接使用nim_duilib界面库来开发常用的桌面应用,以简化应用程序的UI开发工作。

2024-04-29 14:36:50 3067

原创 Windows下使用LLVM编译skia源码

Windows下编译skia源码的基本过程。操作系统:Windows 11,编译器:LLVM。

2024-04-15 16:45:41 1073 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除