GUIslice Builder 安装及使用

GUIslice Builder是一个可视化UI设计工具,可以简化GUIslice的UI设计流程。下面是GUIslice Builder的安装和使用步骤:

首先,下载GUIslice Builder并解压缩文件。

然后,进入解压后的文件夹,并运行GUIsliceBuilder.exe。

接下来,创建一个新项目。在主界面上,选择“New Project”,并输入项目名称和文件夹路径。

接着,选择适当的目标平台和屏幕分辨率等设置。

然后,使用GUIslice Builder的工具栏和属性面板设计UI界面。可以添加按钮、标签、文本框等UI元素,然后设置它们的属性。

最后,保存项目并导出UI定义文件。在主界面上,选择“Export”以将UI定义文件保存为C代码。

在Arduino IDE中,将UI定义文件添加到您的项目中,然后您就可以使用GUIslice库将UI界面加载到您的设备上了。

以上是GUIslice Builder的安装和使用步骤,希望对您有所帮助。

库文件使用方法

GUIslice是一个开源的、跨平台的C语言图形界面库。它可以在嵌入式系统、智能家居、机器人和其他嵌入式设备上运行。GUIslice的设计目标是提供一个灵活、可扩展的图形界面框架,可以轻松地扩展和配置。这里是GUIslice库文件的使用介绍:

  1. 下载和安装

GUIslice可以从官方网站 https://github.com/ImpulseAdventure/GUIslice 下载。下载后按照说明进行编译和安装。

  1. 创建应用程序

在使用GUIslice之前,必须首先创建一个应用程序。应用程序中,需要初始化GUIslice库、创建窗口和控件。

下面是一个简单的应用程序示例:

#include "GUIslice.h"
#include "GUIslice_drv.h"#define MAX_PAGE_NUM 2
#define MAX_ELEM_NUM 4// Declare page IDs and control IDs
enum { E_PG_MAIN, E_PG_SECOND };
enum { E_ELEM_BTN_HELLO, E_ELEM_BTN_BACK, E_ELEM_BOX, E_ELEM_TEXT };// Define button callbacks
bool cbBtnHello(void* pvGui, void *pvElemRef, int16_t i16ItmRef)
{gslc_DbgPrint("Hello callback\n");return true;
}
bool cbBtnBack(void* pvGui, void *pvElemRef, int16_t i16ItmRef)
{gslc_DbgPrint("Back callback\n");gslc_PageSet(pvGui, E_PG_MAIN);return true;
}int main()
{gslc_tsGui      sGui;gslc_tsDriver   sDriver;gslc_tsPage     asPage[MAX_PAGE_NUM];gslc_tsElem     asElem[MAX_ELEM_NUM];// Initialize GUIslicegslc_Init(&sGui, &sDriver);// Create pagesgslc_PageAdd(&sGui, E_PG_MAIN, asElem, MAX_ELEM_NUM, asPage, MAX_PAGE_NUM);gslc_PageAdd(&sGui, E_PG_SECOND, asElem, MAX_ELEM_NUM, NULL, 0);// Create main page elementsgslc_ElemCreateBtnTxt(&asElem[E_ELEM_BTN_HELLO], E_PG_MAIN, 10, 10, 100, 30, "Hello", 0);gslc_ElemSetClick(&asElem[E_ELEM_BTN_HELLO], &cbBtnHello);gslc_ElemCreateBtnTxt(&asElem[E_ELEM_BTN_BACK], E_PG_SECOND, 10, 10, 100, 30, "< Back", 0);gslc_ElemSetClick(&asElem[E_ELEM_BTN_BACK], &cbBtnBack);gslc_ElemCreateBox(&asElem[E_ELEM_BOX], E_PG_MAIN, 10, 50, 100, 50);gslc_ElemSetCol(&asElem[E_ELEM_BOX], GSLC_COL_GRAY_DARK);gslc_ElemCreateTxt(&asElem[E_ELEM_TEXT], E_PG_MAIN, 20, 60, "This is a box", 0, E_FONT_TXT_DEFAULT);gslc_ElemSetTxtCol(&asElem[E_ELEM_TEXT], GSLC_COL_WHITE);// Set the main page as the starting pagegslc_PageSet(&sGui, E_PG_MAIN);// Start GUI loopwhile(!gslc_Quit(&sGui)) {gslc_Update(&sGui);delay(50);}return 0;
}
  1. 控件的创建和管理

GUIslice支持多种类型的控件,如按钮、文本框、进度条、滑块等。控件的创建实际上是通过调用GUIslice提供的函数来完成的。

例如,创建一个按钮,可以使用以下代码:

gslc_ElemCreateBtnTxt(&asElem[E_ELEM_BTN_HELLO], E_PG_MAIN, 10, 10, 100, 30, "Hello", 0);

其中,&asElem[E_ELEM_BTN_HELLO]是指向按钮元素的指针,E_PG_MAIN是按钮所属的页面ID,1010是按钮的x和y坐标,10030是按钮的宽度和高度,"Hello"是按钮上显示的文本内容,0是按钮的样式。

控件创建后,可以使用gslc_ElemSetAttr()函数来设置控件的属性,例如文本颜色、字体大小、对齐方式等。

  1. 事件处理

在GUIslice中,每个控件都可以响应鼠标、触摸屏等输入事件。当用户单击按钮或者拖动滑块时,GUIslice将自动调用一个函数来处理这些事件。

要处理特定事件,可以在创建控件的时候,设置一个事件处理函数。例如,以下代码设置了一个按钮的单击事件处理函数:

gslc_ElemSetClick(&asElem[E_ELEM_BTN_HELLO], &cbBtnHello);

其中,&cbBtnHello是一个回调函数,将在按钮被单击时被调用。

  1. 页面管理

GUIslice中的页面是用户界面的一个逻辑组件。它们用于在不同的界面之间进行转换。例如,当用户单击“下一页”按钮时,可以将页面切换到下一个页面。

要创建一个新页面,可以使用以下代码:

gslc_PageAdd(&sGui, E_PG_SECOND, asElem, MAX_ELEM_NUM, NULL, 0);

其中,E_PG_SECOND是一个页面ID,asElem是一个指向页面元素数组的指针,MAX_ELEM_NUM是数组中元素的数量。

要在页面之间进行切换,可以使用以下代码:

gslc_PageSet(&sGui, E_PG_SECOND);

其中,&sGui是GUIslice实例的指针,E_PG_SECOND是要显示的页面ID。

  1. 更新用户界面

当用户界面发生更改时(例如,当用户单击按钮时),需要将界面更新到屏幕上。

要更新用户界面,可以使用以下代码:

gslc_Update(&sGui);

其中,&sGui是GUIslice实例的指针。

以上就是GUIslice库文件的使用介绍。通过学习和实践,您可以更好地掌握和使用GUIslice。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/102672.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot项目--电脑商城【用户注册】

1.创建数据表 1.1 创建t_user表 CREATE TABLE t_user (uid INT AUTO_INCREMENT COMMENT 用户id,username VARCHAR(20) NOT NULL UNIQUE COMMENT 用户名,password CHAR(32) NOT NULL COMMENT 密码,salt CHAR(36) COMMENT 盐值,phone VARCHAR(20) COMMENT 电话号码,email VARCH…

自然语言处理(七):来自Transformers的双向编码器表示(BERT)

来自Transformers的双向编码器表示&#xff08;BERT&#xff09; BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是一种预训练的自然语言处理模型&#xff0c;由Google于2018年提出。它是基于Transformer模型架构的深度双向&#xff0…

Linux学习之MySQL连接查询

接上一篇 连接查询 连接查询也中多表查询&#xff0c;常用于查询来自于多张表的数据&#xff0c;通过不同的连接方式把多张表组成一张新的临时表&#xff0c;再对临时表做数据处理。 #表基础信息&#xff0c;内容可从上一篇博客中查看 mysql> desc departments; ---------…

方案展示 | RK3588开发板Linux双摄同显方案

iTOP-RK3588开发板使用手册更新&#xff0c;后续资料会不断更新&#xff0c;不断完善&#xff0c;帮助用户快速入门&#xff0c;大大提升研发速度。 RK3588开发板载4路MIPI CAMERA摄像头接口、MIPI CSI DPHY的4.5Gbps、2.5Gops的MIPI CSI CPHY&#xff0c;四路同时输入&#xf…

Java“牵手”唯品会商品列表数据,关键词搜索唯品会商品数据接口,唯品会API申请指南

唯品会商城是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取唯品会商品列表和商品详情页面数据&#xff0c;您可以通过开放平台的接口或者直接访问唯品会商城的网页来获取商品详情信息。以下是两种常用方法的介…

生成式人工智能能否使数字孪生在能源和公用事业行业成为现实?

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 克服障碍&#xff0c;优化数字孪生优势 要实现数字孪生的优势&#xff0c;您需要数据和逻辑集成层以及基于角色的演示。如图 1 所示&#xff0c;在任何资产密集型行业&#xff08;如能源和公用事业&#xff09;中&…

MySQL卸载干净再重新安装【Windows】

家人们&#xff0c;谁懂啊&#xff1f; 上学期学的数据库&#xff0c;由于上学期不知道为什么抽风&#xff0c;过得十分的迷&#xff0c;上课跟老师步骤安装好了Mysql&#xff0c;但后面在使用的过程中出现了问题&#xff0c;而且还出现了忘记密码这么蠢的操作&#xff0c;后半…

UNIAPP之js/nvue混淆探索

因项目需要对UNIAPP的js混淆做了一些调研 混淆教程: https://uniapp.dcloud.net.cn/tutorial/app-sec-confusion.html 按照教程配置进行打包正式包进行混淆 下载正式包将 .ipa改为.zip 解压获取到HBuilder.app 右键显示包内容 获取到混淆的key 不同时间进行打包混淆同一文…

2023-2024 人工智能专业毕设如何选题

文章目录 0 简介1 如何选题2 最新毕设选题3 最后 0 简介 学长搜集分享最新的人工智能专业毕设选题&#xff0c;难度适中&#xff0c;适合作为毕业设计&#xff0c;大家参考。 学长整理的题目标准&#xff1a; 相对容易工作量达标题目新颖 1 如何选题 最近非常多的学弟学妹问…

Unity RawImage

文章目录 1. Image2. RawImage2.1 UV Rect 3. RawImage 应用 1. Image Image 控件在我的这篇博客中有详细解释&#xff1a; https://blog.csdn.net/weixin_45136016/article/details/125655214 2. RawImage RawImage 组件是一个用来显示纹理的组件&#xff0c;常常跟Render …

65.Linux系统上库文件的生成与使用

目录 1.什么是库文件 2.静态库的生成与使用 2.1静态库的生成 2.2静态库的使用 3.共享库的生成和使用 3.1共享库的生成 3.2共享库的使用 4、静态库和共享库的区别 1.什么是库文件 库是一组预先编译好的方法的集合。Linux系统存储的库的位置一般在&#xff1a;/lib 和 /…

2023国赛数学建模C题模型代码

C题代码全部都完成了&#xff0c;可以看文末名片 我们先看C题的一个背景 在生鲜商超中,蔬菜类商品保鲜期短,且品相会随销售时间增加而变差。商超需要根据历史销售和需求每天进行补货。由于蔬菜品种众多、产地不同,补货时间在凌晨,商家须在不明确具体单品和价格的情况下进行补…