ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

NXP GUI-Guider,lvgl的好伴侣 拖曳式设计并自动生成代码,而且还可以当模拟器练习代码,如何使用gui guider自定义代码

2022-08-20 10:03:47  阅读:363  来源: 互联网

标签:btn obj 自定义 好伴侣 代码 custom lv label event


GUI Guider是恩智浦提供的用户友好型图形用户界面开发工具,可通过开源LVGL图形库快速开发高品质的显示。GUI Guider的拖放编辑器可以轻松利用LVGL的众多特性,如小部件、动画和样式来创建GUI,而只需少量代码或根本无需任何代码。

下载地址   GUI Guider_NXP 半导体   可能需要注册nxp的账号  目前最新的是1.04   。运行需要安装jave环境 jre  。里边自带了mingw编译器使用sdl驱动用来跑模拟器,如果使用8.3的lvgl库还可以导出micropython文件。这个比lvgl官方的SquareLine Studio 好在没有免费账号屏幕数跟wigt数量限制,并且还有中文界面  可以改显示语言  主题  调整屏幕刷新率可以提高帧率 ,其实是每一帧的渲染时间  修改过lv-conf。h的就明白

 

 

 

 能看出来界面是基于elctron的,代码是基于java加模板生成的

还可以很简单的给控件加事件  甚至都不用写一行代码    下图里给按钮的clicked 添加事件 使按键自己隐藏

 

 

   更好玩的是可以用这个模拟器来练习lvgl库里的例程  。先看工程导出的文件夹

 

custom是自定义的程序,generated就是自动生成的代码,包含gui设计与事件,这里不要动,每次点运行模拟器都会重新生成代码。

 

 

 

lvgl-simulator是模拟的用的代码,可以参考里边的main.来移植到别的硬件,观察他的初始化

   /*Create a GUI-Guider app  创造app */
    setup_ui(&guider_ui);//设计小部件的ui布局
    events_init(&guider_ui);//设置小部件的事件
    custom_init(&guider_ui);//运行自定义的程序
    

 

 我们要测试代码片段的话就在 custom文件夹里修改   这里做个小测试,找到从github上拖下来的lvgl库里的例子 在这个地方

 

 

 

 把回调函数跟测试函数拷贝到 刚才的guiguider的 custom.c里  就像这样

// SPDX-License-Identifier: MIT
// Copyright 2020 NXP

/**
 * @file custom.c
 *
 */

/*********************
 *      INCLUDES
 *********************/
#include <stdio.h>
#include "lvgl.h"
#include "custom.h"

/*********************
 *      DEFINES
 *********************/

/**********************
 *      TYPEDEFS
 **********************/

/**********************
 *  STATIC PROTOTYPES
 **********************/

/**********************
 *  STATIC VARIABLES
 **********************/

/**
 * Create a demo application
 */
 
static void event_cb(lv_event_t * e)//事件声明
{
    LV_LOG_USER("Clicked");

    static uint32_t cnt = 1;
    lv_obj_t * btn = lv_event_get_target(e);
    lv_obj_t * label = lv_obj_get_child(btn, 0);
    lv_label_set_text_fmt(label, "%"LV_PRIu32, cnt);
    cnt++;
}


void lv_example_event_1(void)  //创建一个带标签的按钮
{
    lv_obj_t * btn = lv_btn_create(lv_scr_act());
    lv_obj_set_size(btn, 100, 50);
    lv_obj_center(btn);
    lv_obj_add_event_cb(btn, event_cb, LV_EVENT_CLICKED, NULL);//把刚才的回调函数添加到按钮上

    lv_obj_t * label = lv_label_create(btn);
    lv_label_set_text(label, "Click me!");
    lv_obj_center(label);
}

void custom_init(lv_ui *ui)
{



    lv_example_event_1();    在custom-init里运行自定义函数,主要不要把回调函数写到custom-init里,会导致无法运行
}

    

 

保存文件,点guider的绿色三角按键运行。可以看到除了我们在guider里设计的按钮,还出现了自定义的按钮。点击这个按钮上边的数字会加1.这比每次测试都要烧录单片机快多了

 

标签:btn,obj,自定义,好伴侣,代码,custom,lv,label,event
来源: https://www.cnblogs.com/kyo413/p/16607189.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有