前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【STM32F429】第26章 ThreadX GUIX滚轮控件实现参数调节

【STM32F429】第26章 ThreadX GUIX滚轮控件实现参数调节

作者头像
Simon223
发布2021-07-15 12:00:34
3200
发布2021-07-15 12:00:34
举报

第26章 ThreadX GUIX滚轮控件实现参数调节

本章节为大家讲解GUIX的滚轮控件实现参数调节,非常实用。

26.1 初学者重要提示

  1. 务必看第11章学习GUIX Studio的使用方法和第12章学习GUIX Studio生成的代码移植到硬件平台的方法。
  2. 本章配套例子制作了一个年月日设置案例,实际项目用到的类似场景比较多。

26.2 GUIX Studio创建窗口

我们这里设计了一个窗口,界面大小800*480:

26.2.1 主窗口设置

主窗口大小800*480,注意注意合理配置一个Widget Id,后面要用到:

另外还专门设置了一个回调函数:

26.2.2 日期更新控件

日期更新是采用的Prompt文件控件实现,注意Widget Id,后面要用到:

并注意开启运行时动态更新:

26.2.3 滚轮控件设置

GUIX有三种滚轮控件,分别是Generic Scroll Wheel,Numeric Scroll Wheel和String Scroll Wheel。我们这里使用的是Numeric Scroll Wheel。

添加方法如下,依次添加了三个,分别用于年月日设置:

我们这里以年设置为例进行说明,Widget id设置为GUI_ID_NSCROLLWHELL0:

然后是下面几个参数设置:

  • Total Rows

这个是总行数设置。我们这里设置了30个。

  • Selected Row

表示当前选中的行。从0开始计数。

  • Row Height

表示行高度。

  • Fade Edge Value

表示控件边缘的透明度,0表示完全不透明,255表示完全透明。

  • Fade Center Value

表示控件中心位置的透明度,0表示完全不透明,255表示完全透明。

  • Start Val

表示起始数值。

  • End Val

表示结束数值,注意设置的数字范围跟参数Total Rows匹配。

26.3 GUIX回调事件处理

滚轮控件调节后,可以在回调函数里面获取滚轮数值,回调代码如下:

代码语言:javascript
复制
/*
*********************************************************************************************************
*    函 数 名: _cbEventWindow
*    功能说明: 窗口window的事件回调函数
*    形    参: widget     窗口句柄 
*             event_ptr  事件指针
*    返 回 值: 返回0表示成功
*********************************************************************************************************
*/
UINT _cbEventWindow(GX_WINDOW *widget, GX_EVENT *event_ptr)
{
    int years, month, day;
    char buf[100];

    switch (event_ptr->gx_event_type)
    {
        /* 控件显示事件 */
        case GX_EVENT_SHOW:
     
            /* 默认事件处理 */
            gx_window_event_process(widget, event_ptr);
            break;
            
        /* 更新时间 */
        case GX_SIGNAL(GUIX_ID_PROMPT0, GX_EVENT_CLICKED):
            gx_scroll_wheel_selected_get(&(window.window_numeric_scroll_wheel), &years);
            gx_scroll_wheel_selected_get(&(window.window_numeric_scroll_wheel_1), &month);
            gx_scroll_wheel_selected_get(&(window.window_numeric_scroll_wheel_2), &day);
        
            sprintf(buf, "%04d-%02d-%02d", (years+2000), month+1, day+1);
            gx_prompt_text_set(&(window.window_prompt), buf);
            break;

        default:
            return gx_window_event_process(widget, event_ptr);
    }

    return 0;
}
  • 滚轮控件的更新后,可以通过函数gx_scroll_wheel_selected_get获取当前选中的位置索引,注意是从0开始的。滚轮的句柄window.window_numeric_scroll_wheel。
  • 日期更新使用的文本控件Prompt,大家通过滚轮设置时间后,点击Promp文件控件所在位置就会更新为最新的设置数值。

gx_prompt_text_set(&(window.window_prompt), buf);

26.4 实验例程设计框架

本章例程的重点是滚轮控件的使用方法。

26.5 实验例程

(注,如果是电阻屏,需要做触摸校准,校准方法看本教程附件章节A)

配套例子:

本章节配套了如下两个例子供大家移植参考:

  • V6-2035_GUIX Scroll Wheel

GUIX Studio生成的代码在硬件平台实际运行的工程,含有GCC,IAR,MDK AC5和AC6四个版本工程。

  • V6-2036_GUIX Studio Scroll Wheel

GUIX Studio工程模板,设计界面后,生成的文件可直接添加到MDK,IAR和GCC软件平台使用。

实验目的:

  1. 本章主要学习GUIX的滚轮控件参数调节。

实验内容:

1、共创建了如下几个任务,通过按下按键K1可以通过串口打印任务堆栈使用情况

App Task Start任务 :启动任务,这里用作BSP驱动包处理。

App Task MspPro任务 :消息处理,这里用作LED闪烁。

App Task UserIF任务 :按键消息处理。

App Task GUI任务 :GUI应用任务。

App Task STAT任务 :统计任务。

App Task IDLE任务 :空闲任务。

GUIX System Thread :GUI系统任务。

System Timer Thread任务:系统定时器任务。

实验效果:

GUIX Studio的界面设计如下:

串口打印任务执行情况:

IAR,MDK AC5和AC6工程可以串口打印任务执行情况:按开发板的按键K1可以打印,波特率 115200,数据位 8,奇偶校验位无,停止位 1:

Embedded Studio(GCC)平台的串口打印是通过其调试组件SEGGER RTT做的串口打印,速度也非常快,打印效果如下:

展示里面有乱码是因为Embedded Studio不支持中文。

26.6 总结

本章节主要为大家讲解了滚轮控件的使用方法,非常实用,大家可以尝试自己也创建一个滚轮控件效果展示。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第26章 ThreadX GUIX滚轮控件实现参数调节
    • 26.1 初学者重要提示
      • 26.2 GUIX Studio创建窗口
        • 26.2.1 主窗口设置
        • 26.2.2 日期更新控件
        • 26.2.3 滚轮控件设置
      • 26.3 GUIX回调事件处理
        • 26.4 实验例程设计框架
          • 26.5 实验例程
            • 26.6 总结
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档