快速入门
欢迎来到 LCUI 文档!本章节将介绍一些基础概念和用法,以帮助你快速入门。
你将会学习到:
- 如何创建应用程序
- 如何创建和嵌套组件
- 如何创建自定义组件
- 如何调整布局
- 如何使用 XML 描述界面
- 如何对事件做出响应并更新界面
创建应用程序
首先,我们需要包含 LCUI 库的头文件,并初始化 LCUI 应用程序。
#include <LCUI.h>
#include <LCUI/main.h>
int main(int argc, char *argv[])
{
lcui_init();
return lcui_main();
}
LCUI.h 是 LCUI 库的头文件,而 LCUI/main.h 是则是程序主入口的头文件,仅需由 main 函数所在的源文件包含,它封装了各个平台的程序入口代码,使得 LCUI 应用程序能够统一用 main 函数作为入口。
lcui_init()
用于初始化 LCUI 库的各项功能,lcui_main()
则负责启动应用程序的主循环,让应用程序保持运行状态并能够响应用户操作。
创建和嵌套组件
LCUI 应用程序的用户界面是由组件组成的。组件拥有自己的逻辑和外观,可以小到一个按钮,也可以大到整个页面。
#include <LCUI.h>
#include <LCUI/main.h>
int main(int argc, char *argv[])
{
lcui_init();
ui_widget_t *text = ui_create_widget("text");
ui_text_set_content(text, "Welcome to my app");
ui_root_append(text);
return lcui_main();
}
在这个示例中,我们调用 ui_create_widget()
函数创建 text 类型的组件用于显示文本,然后调用 text 组件的 ui_text_set_content()
函数设置其文本内容,再调用 ui_root_append()
将之追加为根组件的子组件。
在默认的显示模式下,根组件与主窗口绑定,它的尺寸、内容都会同步到主窗口,这意味着将组件追加到根组件内就能让它在窗口中显示。
创建自定义组件
LCUI 的组件基于原型来实现组件的抽象和继承,组件原型记录了组件的创建、销毁、绘制、估算尺寸等方法,通过创建组件原型然后修改这些方法即可创建你的自定义组件。
#include <LCUI.h>
#include <LCUI/main.h>
ui_widget_prototype_t *my_button_proto;
void my_button_init(ui_widget_t *w)
{
ui_button_set_text(w, "I'm a button");
}
void register_my_button(void)
{
my_button_proto = ui_create_widget_prototype("my-button", "button");
my_button_proto->init = my_button_init;
}
int main(int argc, char *argv[])
{
lcui_init();
register_my_button();
ui_widget_t *text = ui_create_widget("text");
ui_text_set_content(text, "Welcome to my app");
ui_root_append(text);
ui_root_append(ui_create_widget("my-button"));
return lcui_main();
}
在这个示例中,我们创建了组件原型 my-button,继承自 button,指示组件在初始化时将内容设置为 I'm a button
。
my_button_proto
是一个指向组件原型的指针,它被定义为全局变量,以供该类型组件的其它函数使用。
ui_create_widget_prototype()
用于创建组件原型,它返回组件原型指针,通过修改原型的 init 函数指针即可自定义组件的初始化方法。