10.10 C 的图形界面开发库,可借助 XML 和 CSS构建简单的跨平台桌面应用

C 的图形界面开发库,可借助 XML 和 CSS构建简单的跨平台桌面应用

LCUI

LCUI 是一个用 C 编写的图形界面开发库,你可以用 C、XML 和 CSS 创建简单的桌面应用,包括传统的 Win32 桌面应用、Windows 通用应用,目前主要支持 Windows 系统,后续版本将会完善对 Linux 系统的支持。

如果你在熟悉 C 语言的基础上还具备网页开发经验,那么在使用 LCUI 时会更容易上手,因为 LCUI 对 XML、CSS 以及元素布局等的处理方式和浏览器有一些相似的地方,你可以参考左侧的示例代码了解大致效果。

主要特性

  • C 语言编写: 适用于体积较小且主要使用 C 语言实现的应用程序,以及偏向使用 C 语言编写简单应用的开发者。
  • 跨平台: 支持 Windows 和 GNU/Linux 系统,可开发简单的 Windows 桌面应用和通用应用,以及 Linux 桌面应用。
  • XML 和 CSS 解析: 使用 XML 和 CSS 来描述界面的结构和样式,易于开发和维护。
  • 可缩放: 支持全局缩放,支持使用基于屏幕密度的 sp 和 dp 单位表示界面元素的位置和大小。
  • 图片处理: 支持读取 jpg、png 和 bmp 格式的图片。
  • 触控: 支持多点触控,但目前只支持 Windows 系统。

缺少的特性

LCUI 的主要用途是方便作者开发简单的图形界面应用,简单也就意味着功能很少,比如:

  • 没有硬件加速,图形渲染效率低下。
  • 不支持剪切板,你不能选中和复制界面中的文本,也不能从其它程序复制文本到 LCUI 程序中。
  • 输入法支持差,在 Linux 中仅支持输入英文字母和符号。
  • 布局系统简单,不支持网格、表格等布局。

如今可参考的同类开源项目有很多,例如:SDL、imgui,LCUI 中大部分缺少的特性都能在这些项目中找到相关实现,新功能的开发成本和复杂度也因此而降低了很多。开源此项目的原因之一是进行技术交流,如果你有同类项目的研究和使用经验,可以考虑向此项目提供改进方案。

快速上手

Windows

使用 lcui-cli 快速创建一个 LCUI 项目:

# 安装 lcui-cli
npm install -g @lcui/cli
# 创建一个名为 myapp 的 LCUI 项目
lcui create myapp
# 进入项目目录
cd myapp
# 运行这个项目
npm run start

或者,你可以从已有的示例项目快速开始:

# 克隆示例代码库
git clone github.com/lc-ui/lcui-quick-start
# 进入代码库
cd lcui-quick-start
# 安装 NodeJS 依赖包
npm install
# 安装适用于 x64 CPU 架构的 C/C++ 依赖库
lcpkg install --arch x64
# 以调试模式运行应用程序
lcpkg run start --mode debug

想从零开始编写一个 LCUI 应用程序?你可以在你的项目目录里使用 lcpkg 来快速安装 LCUI:

# 初始化 lcpkg 配置文件,告诉 lcpkg 你的项目相关信息 

lcpkg init
# 从 GitHub 下载安装已编译好的 LCUI 库
lcpkg install github.com/lc-soft/LCUI

安装成功后,按照 lcpkg 输出的帮助文档来配置你项目的编译参数。

如果你想手动从源码编译 LCUI,请在 LCUI 的源码目录中使用 lcpkg 安装依赖库:

lcpkg install

之后,使用 Visual Studio 打开 build/windows/LCUI.sln 文件,然后编译生成 LCUI。

Ubuntu

# 安装依赖库
sudo apt-get install libpng-dev libjpeg-dev libxml2-dev libfreetype6-dev libx11-dev
# 克隆代码库
git clone github.com/lc-soft/LCUI.git
# 进入源码目录
cd LCUI
# 生成配置脚本
./autogen.sh
# 配置环境及构建工具
./configure
# 构建
make
# 如果需要安装的话
sudo make install
# 进入测试程序目录
cd test
# 运行 helloworld 程序
./helloworld

提示: 如果需要自定义编译器、编译参数、安装位置等配置,请查阅 INSTALL 文件。

适合哪些人使用?

适合有 GUI 应用开发经验、熟悉 Web 前端开发技术、有意向参与开源项目的 C 开发者使用,最好是具备两年 C 开发经验和一年 web 前端开发经验。以时间来衡量上手门槛可能有点模糊,以下按照技术方向分别列出了一些主要条件,你可自行判断自己是否能够快速上手。

C:

  • 熟悉 C 语言及编译相关工具链的配置,能解决编译问题
  • 熟悉至少一种图形库和 GUI 库/框架,了解 GUI 应用程序的工作原理
  • 熟悉多线程编程,能够解决线程安全、线程同步等问题
  • 能熟练使用调试工具定位问题
  • 有较多的开源项目源码阅读经验

Web 前端:

  • 熟练掌握常见布局
  • 熟悉 CSS 盒子模型和常用属性
  • 有良好的 CSS 编码风格

更多使用方法可以查看官方文档

开源地址:

https://gitee.com/lc-soft/LCUI

更多更优质的资讯,请关注我,你的支持会鼓励我不断分享更多更好的优质文章。


分享到:


相關文章: