介绍
一些基本用法、核心概念的介绍。
LCUI 是一个用于构建用户界面的 C 库。其定位是探索和实践新的用户界面开发方式,以体积小、易于使用、提供便捷的开发工具为特点,帮助 C 开发者快速开发带有图形用户界面的桌面端应用程序。不过由于人力有限,目前 LCUI 在用户界面开发方式的探索和实践还只停留在简单实现了类似于网页的描述风格和渲染效果的程度。
先从最简单的代码开始:
#include <LCUI.h>
int main(void)
{
LCUI_Init();
return LCUI_Main();
}
这段代码完成了一个 LCUI 应用程序的最基础且必要的工作:初始化 LCUI 的各个功能然后将主线程控制权交给 LCUI 的主循环。你可以通过编译这段代码来检查 LCUI 是否正确安装,如果 编译失败,请检查编译器的头文件和库文件搜索路径是否配置正确、LCUI 的头文件和库文件的存放位置是否正确。
上一段代码只是让程序保持运行,并不会在屏幕上输出任何内容,接下来我们再补充一些代码:
#include <LCUI.h>
#include <LCUI/gui/widget.h>
#include <LCUI/gui/widget/textview.h>
int main(void)
{
LCUI_Widget root;
LCUI_Widget text;
LCUI_Init();
root = LCUIWidget_GetRoot();
text = LCUIWidget_New("textview");
TextView_SetTextW(text, L"Hello, World!");
Widget_Append(root, text);
return LCUI_Main();
}
TextView 是一个提供文本渲染功能的预置组件,我们可以使用它将
Hello, World!
文本渲染到屏幕上。在使用 TextView 组件之前,我们需要调用 LCUIWidget_New()
函数来创建一个组件实例,其中 "textview"
参数是 TextView 在组件原型库中注册的名字, LCUIWidget_New()
函数根据这个名字找到对应的组件原型后,会调用原型中的 init
函数对组件实例进行初始化,这个过程类似于 C++ 中的 new Class()
。在组件系统的底层实现中,所有类型的组件都共用同一个数据结构,这意味着我们只需要用
LCUI_Widget
这一种类型的指针来引用组件实例。从 LCUIWdget_New()
函数拿到组件实例后,我们 调用了一些函数设置它的文本内容并将它追加到根组件内,其中 Widget_
前缀的函数是所有组件通用的函数,可以用于操作组件的基本属性、样式、布局等,而 TextView_
前缀的函数则是 TextView 组件专用的函数。为了让用户和你的应用进行交互,我们可以用
Widget_BindEvent()
函数绑定一个事件处理器,在用户点击时调用自定义函数:#include <LCUI.h>
#include <LCUI/gui/widget.h>
#include <LCUI/gui/widget/textview.h>
#include <LCUI/gui/widget/button.h>
void OnButtonClick(LCUI_Widget self, LCUI_WidgetEvent e, void *arg)
{
LCUI_Widget text = e->data;
TextView_SetText(text, "Hello, LCUI!");
}
int main(void)
{
LCUI_Widget root;
LCUI_Widget text;
LCUI_Widget button;