分类

安卓应用安卓游戏

编程软件 源码相关

LCUI(图形界面开发库)

LCUI(图形界面开发库) v2.1.0官方版

大小:4.8 MB

语言:简体中文系统:WinXP, Win2003, Vista, Win7, Win8, Win10

类别:源码相关时间:2020-12-01 20:46

LCUI是基于C语言的一款图形界面开发库,主要用于Windows和Linux桌面应用的开发,可使用XML标记语言来描述界面的结构,CSS代码描述原色的位置、大小、背景、字体和边框等样式,支持加载多个字体文件和读取多种类型的图片,软件开放源代码可进行二次开发。

软件特色

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

跨平台: 支持 Windows 和 GNU/Linux 系统,可开发简单的 Windows 桌面应用和通用应用,以及 Linux 桌面应用。

XML 解析: 支持使用 XML 标记语言描述界面的结构,更少的代码量,更直观的表达方式,易于开发和维护。

CSS 解析: 支持使用 CSS 代码描述界面元素的位置、大小、背景、字体、边框等样式,与应用程序的逻辑分离,易于使用和修改。

类 HTML 布局: 与浏览器处理的网页布局类似,但目前只支持块级(block)、内联块级(inline-block)和简单的弹性(flex)布局,如果你有网页开发经验的话会比较容易上手。

界面缩放: 支持通过设置全局缩放比例来让界面适应不同像素密度的屏幕,也支持使用基于屏幕密度的 sp 和 dp 单位表示界面元素的位置和大小。

文本绘制: 支持为文本设置全局字体、行高、水平对齐方式,支持对局部文本块单独设置颜色、背景色、加粗、斜体。

字体管理: 支持加载多个字体文件,支持自定义界面中的标题、正文、引用、强调等类型的文本所使用的字体字族和风格。

图片处理: 提供图片读取接口,支持读取 jpg、png 和 bmp 格式的图片。支持逐行读取,可在读取图片的过程反馈读取进度。

触控: 支持多点触控,但目前只支持 Windows 系统。

LCUI安装配置教程

Windows

创建新的 LCUI 应用项目

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

# 安装 lcui-cli

npm install -g @lcui/cli

# 创建一个名为 myapp 的 LCUI 项目

lcui create myapp

# 进入项目目录

cd myapp

# 安装依赖库

lcpkg install

# 启动这个项目

lcpkg run start

为已有的项目安装 LCUI

在你的项目目录里使用 lcpkg 来快速安装 LCUI:

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

lcpkg init

# 从 GitHub 下载安装已编译好的 LCUI 库

lcpkg install github.com/lc-soft/LCUI

手动编译安装

如果你想手动从源码编译 LCUI:

打开命令行窗口,在 LCUI 的源码目录中使用以下命令安装依赖库:

lcpkg install

# 如果你需要编译 x64 版本的话

lcpkg install --arch x64

# 如果你需要编译适用于 Windows 通用应用平台 (UWP) 版本的话

lcpkg install --platform uwp

lcpkg install --arch x64 --platform uwp

重命名 include 目录中的 config.win32.h.in 文件为 config.h。

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

Ubuntu

# 安装依赖库

sudo apt-get install libpng-dev libjpeg-dev libxml2-dev libfreetype6-dev libx11-dev

# 克隆代码库

git clone https://github.com/lc-soft/LCUI.git

# 进入源码目录

cd LCUI

# 生成配置脚本

./autogen.sh

# 配置环境及构建工具

./configure

# 构建

make

# 如果需要安装的话

sudo make install

# 进入测试程序目录

cd test

# 运行 helloworld 程序

./helloworld

使用教程

渲染一段文字绘制一个文字比较容易,但用绘制一个文字的方法去绘制一段文字的话,实现起来会很复杂,针对这个问题,可以用 LCUI 提供的文本图层(TextLayer)来解决,除了基本的文本绘制功能外,还具备一下功能:

自定义全局文字的对齐方式

用标签设定其中一段文字的颜色和大小

文本的插入、删除功能,以及光标定位

LCUI 的文本显示(TextView)部件和文本编辑框(TextEdit)部件就是基于该模块实现的。

以下是简单的示例程序:

#include <LCUI_Build.h>
#include <LCUI/LCUI.h>
#include <LCUI/graph.h>
#include <LCUI/font.h>

int main( void )
{
int ret;
LCUI_Graph img;
LCUI_Pos pos = {0, 80};
LCUI_Rect area = {0, 0, 320, 240};
LCUI_TextLayer txt = TextLayer_New();
LCUI_TextStyle txtstyle;

/* 初始化字体处理功能 */
LCUI_InitFont();

/* 创建一个图像,并使用灰色填充 */
Graph_Init( &img );
Graph_Create( &img, 320, 240 );
Graph_FillRect( &img, RGB( 240, 240, 240 ), NULL, FALSE );

/* 设置文本的字体大小 */
TextStyle_Init( &txtstyle );
txtstyle.pixel_size = 24;
txtstyle.has_pixel_size = TRUE;

/* 设置文本图层的固定尺寸、文本样式、文本内容、对齐方式 */
TextLayer_SetFixedSize( txt, 320, 240 );
TextLayer_SetTextStyle( txt, &txtstyle );
TextLayer_SetTextAlign( txt, SV_CENTER );
TextLayer_SetTextW( txt, L"这是一段测试文本\nHello, World!", NULL );
TextLayer_Update( txt, NULL );

/* 将文本图层绘制到图像中,然后将图像写入至 png 文件中 */
TextLayer_DrawToGraph( txt, area, pos, &img );
ret = Graph_WritePNG( "test_string_render.png", &img );
Graph_Free( &img );

/* 退出字体处理功能 */
LCUI_ExitFont();
return ret;
}

编译运行后,可以在程序所在工作目录下找到 test_string_render.png 文件,打开它可看到如下图所示的内容:

绘制出来的文字

在为 TextLayer 设置文本、修改文字样式后,需要调用 TextLayer_Update() 函数以应用这些更改,该函数的第二个参数是个链表,用于保存文本图层中需要刷新的区域,如果不需要这些数据可以将该参数设置为 NULL。

TextLayer 提供了 TextLayer_DrawToGraph() 函数用于将文本图层绘制到图像中,第二个参数指定 TextLayer 中需要绘制的区域,第三个参数指定绘制出的内容在图像中的位置。

更新日志

问题修复

wasm-ld: error: duplicate symbol: self (2b0424c)

display: rect_array 未被释放 (224c433)

gui: 部件销毁后未标记无效区域 (8e1f136)

gui: TextView_SetTextW() 段错误 (#195) (a10df88)

ime: 设置输入框文本光标时段错误 (0b644e1)

linux: 在窗口处于最小尺寸时渲染会出现段错误 (#200) (#201) (fa23f89)

mainloop: 将事件触发器从 OpenMP 并行循环中移出以解决主线程阻塞问题 (#204) (#205) (6978f46)

新功能

添加 settings 接口 (#191) (#211) (#212) (1b8c6e6)

∨ 展开

同类推荐

相关下载

热门游戏

下载排行

热门关键字

  • 编程软件
  • 编程控件
  • 编译调试
  • 开发环境
  • 网页制作
  • 安装制作
  • 数据库类
  • Java相关
  • 加壳脱壳
  • 控件下载
  • 源码相关
  • 编程其他