整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

C 语言桌面端图形界面开发库

C 语言桌面端图形界面开发库

开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个使用 C、XML 和 CSS 构建简单的跨平台桌面应用的开发库——LCUI。


LCUI 是一个用 C 编写的图形界面开发库,你可以用 C、XML 和 CSS 创建简单的桌面应用,包括传统的 Win32 桌面应用、Windows 通用应用。


功能特性

  • C 语言编写: 适用于体积较小且主要使用 C 语言实现的应用程序,以及偏向使用 C 语言编写简单应用的开发者。
  • 跨平台: 支持 Windows 和 GNU/Linux 系统,可开发简单的 Windows 桌面应用和通用应用,以及 Linux 桌面应用。
  • XML + CSS: 预置 XML 和 CSS 解析器,你可以使用 XML 和 CSS 来描述界面结构和样式。
  • 与网页类似的开发体验: 由于 LCUI 的布局、样式和渲染器等相关功能的设计和实现大都参考了 MDN 文档和一些 Web 前端流行的开发库,因此开发体验和界面效果会与网页有一些相似之处,如果你已经有用 HTML 和 CSS 编过网页的经验,那么会比较容易上手。
  • 可缩放: 支持全局缩放,支持使用基于屏幕密度的 sp 和 dp 单位表示界面元素的位置和大小。


效果图


相关项目

  • 用于开发 LCUI 应用程序的命令行工具

项目地址: https://github.com/lc-ui/lcui-cli

  • LCUI 的路由管理器,用于解决 LCUI 应用内多视图的切换和状态管理问题

项目地址: https://github.com/lc-soft/lcui-router

  • 专为 LCUI 开发的组件库,包含了一些通用组件和 CSS 样式,组件设计参考自 Bootstrap、ElementUI、AntDesign

项目地址: https://github.com/lc-ui/lc-design

  • 图片管理器,LCUI 的旗舰级应用程序

项目地址: https://github.com/lc-soft/LC-Finder

  • 基于 JavaScript 语法且可编译为 C 的语言,预置 LCUI 绑定,提供类似于 React 的声明式 UI 开发体验

项目地址: https://github.com/lc-soft/trad


此项目使用MIT开源协议,更多内容大家可自行前往阅读。

开源地址:https://github.com/lc-soft/LCUI

语:有时候在电脑上网的时候看见自己喜欢的网站或特别的页面,自己已经点击电脑屏幕上方的星号收藏这个页面了,但有时候看收藏夹又被密密麻麻的内容弄得头昏眼花,这时,我的处理方法是把收藏的页面导出来,新建文件夹分类整理好,这样下次想看什么内容就不用只看收藏夹里小小的字,而是在文件夹中能够清楚的,按照自己的习惯,分好类别的,整洁的页面了。下面是具体操作,根据提示的1、2、3······进行操作,就可以了。

首先打开浏览器。找到自己喜欢的页面,我打开了自己的收藏夹,找到自己喜欢的页面。然后点击文字跳转到具体的那个喜欢的页面。

然后点击屏幕上方,浏览器的三个点“···”。

然后点击“更多工具”。

然后点击“将页面另存为”。

选择文件夹,把页面保存下来。

最后打开电脑你保存文件在什么地方,就能在该地方找到保存的喜欢页面,该页面在文件夹里保存的形式为“html”文件。

在程序员开发软件界面系统也都是有多种多样,每种开发语言基本上都有一种或多种界面引擎如:C skin, Direct UI , 还有金山、迅雷等厂商的界面SDK。

今天推荐一个轻量级、自由度高、使用方便的界面库 Htmlayout/Sciter。HTMLayout是一个免费的开源界面库(核心未开源),以DLL的方式运行,并提供一个API的调用接口和一系列的C++封装和sample例程。HTMLayout: 快速,轻量、嵌入式的,基于HTML/CSS渲染技术和布局管理的界面引擎组件,可以高效地解析和渲染HTML网页。其几乎支持所有的HTML元素和CSS3标准,并根据界面库的特征,做了很多有用的功能性扩展。

界面预览

这里着重地说一下在 aardio 软件中的使用,作者把 HTMLayout和 Sciter 制作成了扩展库, 并且免费开源, 通过这个扩展库你知道会一点点 HTML 和 CSS 知识就可以方便地制作各种漂亮的 ui。通过作者的努力你还可以直接在界面上使用现在最流行的字体图标,还使扩展库支持了模板功能,你可以像写PHP一样写桌面软件的界面HTML,虽然看起来简单的代码,但用起来会非常方便。

效果图

效果图

言归正传, 我们用aardio一步步来制作一个最简单的界面。

1、打开软件》新建工程》选择web界面》选择HTMLayout》创建工程

字体图标

效果图

aardio 里查看 main.aardio 源码

 import win.ui;
/*DSG{{*/
var winform=win.form(text="htmlayout";right=761;bottom=609;border="none")
winform.add()
/*}}*/

import web.layout; 
import web.layout.behavior.windowCommand;
import web.layout.behavior.tabs;
// 加载网页
var wbLayout=web.layout( winform );
wbLayout.go("\layout\ui.html");

if(_STUDIO_INVOKED){
	import web.layout.debug;
	wbLayout.attachEventHandler( web.layout.debug );
} 

//添加阴影边框
import win.ui.shadow;
win.ui.shadow( winform,50,3 );

winform.show() 
win.loopMessage();

从上面我们可以看出,软件的主要界面是由 ui.html,ui.css,tabs.css 这几个文件组成的。然后你可以根据自己软件界面的需要进行调整。

工程项目

以下是我自己这二天搭建的一个软件的界面,就是一个简单的软件基本框架。

演示图上

工程项目目录结构

如果你对htmlayout感兴趣,可以查看 https://bbs.aardio.com/forum.php?mod=forumdisplay&fid=128&page=1 了解更多更详细的教程。