LCUI

使用 C、XML 和 CSS 构建简单的跨平台桌面应用

快速上手 下载

当前版本:1.0 Beta 3   ·   发布时间:2018-05-07   ·   GitHub 仓库   ·   创建者:lc-soft
Hello, World!
<?xml version="1.0" encoding="UTF-8" ?>
<lcui-app>
  <resource type="text/css">
    #text-hello {
      color: #8cc63f;
      padding: 25px;
      margin: 25px;
      border: 1px solid #000;
      background-color: #fafafa;
    }
    #btn-hello, #input-hello {
      margin: 0 0 0 25px;
    }
  </resource>
  <ui>
    <widget id="text-hello" type="textview">Hello, World!</widget>
    <widget id="input-hello" type="textedit">Hello, World!</widget>
    <widget id="btn-hello" type="button">Submit</widget>
  </ui>
</lcui-app>

概述

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

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

C语言编写

适用于体积较小且主要使用C语言实现的应用程序,以及偏向使用C语言编写简单应用的开发者。

XML + CSS

支持使用 XML 和 CSS 描述界面布局及样式,节省界面开发时间和维护成本。

跨平台

支持 Windows 和 GNU/Linux 系统,可以编写 Windows 桌面应用和通用应用,以及 Linux 桌面应用。

样例展示

一些 LCUI 应用程序的效果图

受到地球上的一些人和公司的喜爱

LCUI 解决了许多复杂的问题,得益于 XML 和 CSS 支持,大大的减少了应用程序的界面开发与维护成本,我只需要为界面编写一次代码就能让我的应用在多个平台上呈现一致的界面效果,这使得我能够轻松的为我的应用开发适用于 Windows 通用平台(UWP)的版本,不用再去另外学习 UWP 应用的界面开发技术。目前主要是支持 Windows 平台,期待以后增加其它平台的适配。

参与贡献

开源项目的可持续发展仅靠作者一个人是远远不够的,如果你有意向,可以通过以下几种方式参与本项目

默默点赞

访问 GitHub 上的 LCUI 代码库主页并为 LCUI 贡献一颗星星,虽然这样做看上去没多大作用,但或许在以后能够为作者的职业生涯和 LCUI 的发展提供无形的帮助。

反馈问题

测试是最容易参与项目开发活动的一种方式,帮助作者测试现有功能和相关应用程序,以便作者及早发现缺陷并处理它。

关注进展

你可以在 GitHub 上关注 LCUI 项目,每当项目有新的动态都能够及时收到通知,如果你是开发者,或许能够帮助审查新提交的代码、发现潜在的 BUG,或者也可以帮助其他用户解决常见问题。

贡献代码

项目在开发过程中会有很多新的功能需求,每次代码改动都有可能留下新的 BUG,如果你发现某个功能需求或 BUG 是你能够轻松解决的,可以向 LCUI 提交你的解决方案。

完善文档

现有的 LCUI 相关文档还很少,你可以通过撰写新内容、帮助完善已有内容,或者将现有的文档翻译为新语种以完善 LCUI 的文档。

捐赠支持

一个项目如果没有资金的支持,维护和开发新功能是不可能一直持续下去的,你的捐赠可以让 LCUI 得到更积极的维护和更新。

授权与定价

以另一种方式让 LCUI 得到更积极的维护和更新

社区版

免费

适用于普通小项目

查看许可协议

  • 社区支持
  • 允许在闭源软件中使用
  • 提供官方技术支持
  • 提升已反馈的 BUG 的可见度和优先级
  • 提供 BUG 修复或临时解决方案
  • 在文档和网站中展示你的信息

商业版

   2,560 /人/月

适用于需要可靠技术支持的项目

购 买

  • 社区支持
  • 允许在闭源软件中使用
  • 提供官方技术支持
  • 提升已反馈的 BUG 的可见度和优先级
  • 提供 BUG 修复或临时解决方案*
  • 在文档和网站中展示你的信息

* 在合理努力的情况下,并不是每个 BUG 都可以作为技术支持中的一部分来解决

常见问题

诞生目的是什么?

主要为作者以后编写的程序提供图形界面支持,也就是用于作者的个人用途。

为何要重复造轮子?

因为那是别人的轮子,用别人的东西做自己的作品感觉没多大意思,而且那个时候也懒得浪费时间去学乱七八糟的东西,所以就自己造轮子,运用所学的东西去解决各种问题,毕竟比起当个螺丝钉,还是独立开发一个完整项目更有意思些。

我可以使用它么?

可以,但没多大用途,由于 LCUI 是作者的个人作品,因此请不要指望 LCUI 符合你的习惯和要求,如果要正式应用至你的软件,或着有很多其它需求,请选择主流GUI引擎/函数库,例如:ElectronQt。

我能用它做什么?

LCUI 支持 GNU/Linux 和 Windows 平台,你可以参考相关文档及样例截图来了解 LCUI 能够实现的功能。由于现在还不成熟,只能实现一些低级简单的效果。

与其它同类软件项目相比,有什么优势?

没有明显优势,LCUI的诞生并不是为了与其它GUI引擎/函数库竞争,也不是为了超越或取代某GUI引擎/函数库。

支持哪些编程语言?

LCUI 是 C 语言编写的,因此,可以在 C 语言或 C++ 语言中使用 LCUI。考虑到现阶段的情况,为了减少项目维护的工作量,暂不考虑提供其它语言的支持。

为何要选择用 C 语言开发 LCUI?

作者在开发 LCUI 前能正常应用于开发的编程语言只有 C,再加上其它一些因素的影响,例如:移植到硬件条件有限且对运行效率有要求的设备环境下(如:树莓派)、推翻某些人对C语言的肤浅认知,等等。因此,LCUI 在较长的时间内会使用C作为主要开发语言。

有丰富的文档吗?

没有,目前只有一小部分教程,写文档是一件很麻烦的事情,写完后还需要保持更新,每当项目内部功能有所改动时都需要更新文档。如果你需要更多文档的话,可以在 Patreon 上捐赠支持作者达成 512美元/月 的小目标,这样作者就会花大部分时间在文档编写工作上。

为什么要开放源代码?

因为现在作者对项目有绝对的主导权,不用担心有人会创建一个能抢占主导权且更具影响力的衍生版本,也不用担心有人会擅自将源代码应用到商业用途的闭源软件中,毕竟有时间、有能力且对这个项目有兴趣的人不多,再加上一些有意或无意留下的功能缺陷,能有时间折腾的人就更少了。开放源代码也可以满足作者的展现欲,刷点知名度和存在感,对职业生涯也是个加分项,所以是利大于弊的。

是否有可视化界面设计工具或编辑器插件?

没有,将来也不会打算开发,现阶段开发这种工具只是在浪费时间,除了被一些人感谢外没有任何意义。你可以自己尝试开发,或者等其他人开发。