RT-Thread 学习笔记(四)——添加RTGUI组件

RT-Thread版本:2.1.0

打开RTGUI组件方法:

1、在rtconfig.h中添加:#define RT_USING_GUIENGINE

注:

/* SECTION: RT-Thread/GUI */
/* #define RT_USING_RTGUI */
#define RT_USING_GUIENGINE

新版本RT-Thread不再使用RT_USING_RTGUI,且关于触摸的一些文件已经移除,生成的工程无法编译通过

 

2、执行scons --target=MDK5 -s生成Keil工程,编译即可。

  注:生成iar工程时会报错,原因是__restrict,__attribute__((pure))这两个在IAR编译器中貌似不支持,

做如下图中的更改可以消除报警,但不知道这样的做法是否会导致其它问题,还在研究中。。。。。。

故建议使用Keil编译GUI。

 

 

下面就是要研究RTGUI组件的初始化和使用了,看了一点,没有找到文档说明,看的很蛋疼,继续学习!!!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RT-Thread 中编写一个控件,通常需要使用图形库或用户界面库来实现。以下是一个简单的示例,展示了如何在 RT-Thread 中编写一个自定义的控件: 1. 创建控件的结构体: ```c typedef struct { rtgui_widget_t parent; // 父控件 rtgui_dc_t *dc; // 绘图上下文 rtgui_rect_t rect; // 控件的位置和尺寸 rt_uint32_t value; // 控件的值 } custom_widget_t; ``` 2. 实现控件的绘制函数: ```c static void custom_widget_ondraw(rtgui_widget_t *widget) { custom_widget_t *custom_widget = (custom_widget_t *)widget; // 绘制背景 rtgui_dc_fill_rect(custom_widget->dc, &(custom_widget->rect), RTGUI_RGB(255, 255, 255)); // 绘制文本 char value_str[16]; snprintf(value_str, sizeof(value_str), "%lu", custom_widget->value); rtgui_dc_draw_text(custom_widget->dc, value_str, &(custom_widget->rect), RTGUI_TEXT_CENTER); // 绘制边框 rtgui_dc_draw_rect(custom_widget->dc, &(custom_widget->rect), RTGUI_RGB(0, 0, 0)); } ``` 3. 实现控件的事件处理函数(可选): ```c static void custom_widget_onevent(rtgui_widget_t *widget, rtgui_event_t *event) { // 处理控件相关的事件 } ``` 4. 创建控件的实例并添加到父控件: ```c void create_custom_widget(rtgui_widget_t *parent, rt_uint16_t x, rt_uint16_t y, rt_uint16_t width, rt_uint16_t height) { custom_widget_t *custom_widget = (custom_widget_t *)rtgui_malloc(sizeof(custom_widget_t)); custom_widget->parent = parent; custom_widget->dc = parent->dc; custom_widget->rect.x1 = x; custom_widget->rect.y1 = y; custom_widget->rect.x2 = x + width; custom_widget->rect.y2 = y + height; custom_widget->value = 0; rtgui_widget_set_ondraw(&(custom_widget->parent), custom_widget_ondraw); rtgui_widget_set_onevent(&(custom_widget->parent), custom_widget_onevent); rtgui_container_add_child(parent, &(custom_widget->parent)); } ``` 这只是一个简单的示例,您可以根据自己的需求进行扩展和修改。需要注意的是,RT-Thread 提供了多个图形库和用户界面库供选择,您可以根据自己的需求选择适合的库来编写控件。另外,还可以参考 RT-Thread 提供的示例代码和文档来更深入地了解如何编写和使用控件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值