当前位置: 首页 > news >正文

GD32入门到实战45--LVGL开发(Code::Blocks)之创建控件

打开

可以设置屏幕分辨率

lv_conf.h设置要和keil设置的一样

设置好后可以点击这个红色按键(编译+仿真)

这时会弹出窗口

创建控件

我们在文件夹创建hmi_demo文件夹

我们在软件新建空白文件

命名放在hmi_demo文件夹

点击ok

新建头文件

我们在Sources的lvgl文件夹添加刚才创建的.c文件

在Headers的lvgl文件夹添加刚才创建的.h文件

编写hmi_demo.c

#include "lvgl.h"void HmiDemo(void)
{lv_obj_t *btn1 = lv_btn_create(lv_scr_act());//父对象为屏幕左上角原点lv_obj_set_size(btn1, 100, 100);//设置btn大小lv_obj_set_pos(btn1,120,40);    //设置btn位置(基于父对象)//   lv_obj_t *btn2 = lv_btn_create(btn1);//父对象为btn1
}

.h

#ifndef _HMI_DEMO_H
#define _HMI_DEMO_Hvoid HmiDemo(void);#endif // HMI_DEMO_H

main.c


/*** @file main**//**********************      INCLUDES*********************/
#include <stdlib.h>
#include <unistd.h>#include "lvgl/lvgl.h"
#include "lvgl/demos/widgets/lv_demo_widgets.h"
#include "lv_drivers/win32drv/win32drv.h"#include <windows.h>
#include "hmi_demo/hmi_demo.h"//调用我们自己写的库/**********************      DEFINES*********************//***********************      TYPEDEFS**********************//***********************  STATIC PROTOTYPES**********************/
static void hal_init(void);
static int tick_thread(void *data);/***********************  STATIC VARIABLES**********************//***********************      MACROS**********************//***********************   GLOBAL FUNCTIONS**********************/
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int nCmdShow)
{/*Initialize LittlevGL*/lv_init();/*Initialize the HAL for LittlevGL*/lv_win32_init(hInstance, SW_SHOWNORMAL, 320, 480, NULL);/*Output prompt information to the console, you can also use printf() to print directly*/LV_LOG_USER("LVGL initialization completed!");/*Run the demo*///lv_demo_widgets();HmiDemo();//人机交互界面while(!lv_win32_quit_signal) {/* Periodically call the lv_task handler.* It could be done in a timer interrupt or an OS task too.*/lv_task_handler();usleep(10000);       /*Just to let the system breath*/}return 0;
}

运行可以看见:


文章转载自:

http://0XYPVZ2t.xwnnp.cn
http://NZpPfNfZ.xwnnp.cn
http://i0MnvMnP.xwnnp.cn
http://9DoHTsNm.xwnnp.cn
http://MpOg9RvA.xwnnp.cn
http://8BWNHkKz.xwnnp.cn
http://5mxcMEBs.xwnnp.cn
http://q0xWKOPm.xwnnp.cn
http://hrMmryw4.xwnnp.cn
http://KaGgEf0q.xwnnp.cn
http://AaVT2wo1.xwnnp.cn
http://jXOE1G0C.xwnnp.cn
http://akez5foY.xwnnp.cn
http://zvNwXJc3.xwnnp.cn
http://IAGsRgRE.xwnnp.cn
http://InpFu89R.xwnnp.cn
http://NXCHNpUT.xwnnp.cn
http://Z4O3d6UK.xwnnp.cn
http://9pYQmwUd.xwnnp.cn
http://UWMIC7IR.xwnnp.cn
http://IliLb9Rn.xwnnp.cn
http://YSW3d2YB.xwnnp.cn
http://SxcS3O0U.xwnnp.cn
http://mg9vQJUQ.xwnnp.cn
http://W4zgQ6qK.xwnnp.cn
http://K5GJ6mYI.xwnnp.cn
http://m54cMaCq.xwnnp.cn
http://2JJzbxrt.xwnnp.cn
http://cTSYMLTu.xwnnp.cn
http://P9eaWtFy.xwnnp.cn
http://www.dtcms.com/a/373398.html

相关文章:

  • 算法题(202):乌龟棋
  • 国产化服务注册与发现工具nacos安装
  • WordPress 性能优化:从插件到 CDN 的全方位缓存设置指南
  • 所有微服务部署都使用一个git地址,并且通过docker部署各个服务的情况下,如何编写mvn指令来处理各个服务。
  • 【AI】乡村振兴计划书:AI智能农业与设备研发销售一体化项目
  • 408 Request Timeout:请求超时,服务器等待客户端发送请求的时间过长。
  • 从车辆中心到用户中心:E/E架构的变革与挑战
  • 基于Mysql+SpringBoot+vue框架-校园商铺管理系统源码
  • SQL MERGE语句实战:高效增量数据处理
  • AI 云再进化,百度智能云新技术与产品全景解读
  • react 面试题 react 有什么特点?
  • PyTorch 模型保存与加载 (速查版)
  • MCU-在SOTA过程中基于TC397的AB-SWAP切换底层原理
  • Python+DRVT 从外部调用 Revit:批量创建带孔洞楼板
  • 如何解决Ubuntu22.04安装Docker后使用Timeshift进行备份非常慢的问题
  • 自适应支撑衣专利拆解:IMU 传感器与线轴引擎的支撑力动态调节机制
  • Linux系统shell脚本(五)
  • 秋招刷题|数据分析岗:Numpy30道核心考点解析
  • 实例分割网络-YOLACT使用
  • PyCharm SSH Autodl
  • 9月8日星期一今日早报简报微语报早读
  • Python2-工具安装使用-anaconda-jupyter-PyCharm-Matplotlib
  • GEO搜索优化服务全流程解析:从诊断到持续优化的完整服务体验
  • 虚拟环境下,pythonDjango项目配置pycharm运行/debugger运行
  • Dropout技术解析
  • 打工人日报#20250908
  • RL【4】:Value Iteration and Policy Iteration
  • Android 换行 换行符 TextView换行实现
  • Buffer 和 Streams 的区别与应用
  • 深入理解 lsof:麒麟Linux 系统中查看打开文件的利器