在TouchGFX有一个类似于滴答定时器的函数,handleTickEvent()。

这一节我们使用handleTickEvent函数让图形动起来。

在形状中找圆,设置圆画板大小为500X500,起点坐标为260,50,圆心在画板坐标的250,250,设置圆弧的开始角度和终止进度,设置圆弧的半径和圆弧线的宽度(0表示全部填充),这样这个圆弧就创建好了,

我们再在圆弧的外面画一个完整的圆

生成代码,在Screen2View.hpp的Screen2View中加入两个变量和handleTickEvent函数,声明这个函数后,在程序执行时,会自动定时调用或者函数。

在Screen2View.cpp中定义这个函数,设置圆弧的开始和终止角度,每次加6度,一圈是360度正好加60次结束,连续起来就感觉在转圈圈,在Screen2View构造函数里面赋初值。

circle1.setArc为设置圆弧的角度,函数原型如下,

运行模拟器,查看效果。然后编译下载到开发板,

我们还可以添加文字来显示他转了多少圈,先添加一个文本框,取消自动设置大小,文本款尽量拉大一点防止数据显示不完整,设置字体居中,显示设置通配符,设置buff长度10个字节。

添加显示代码,显示minute的值,没有添加数据溢出处理

Unicode::snprintf(textArea1Buffer, TEXTAREA1_SIZE,"%d", minute);

textArea1.invalidate();

运行测试如下,发现与预期不符。

那是因为我们没有添加通配符范围,在修改字体的地方添加通配符范围。

重新生成代码,编译烧录。

这样是不是感觉有点单调,那好可以再加一个圆弧,设置成红色初始角度

void Screen2View::handleTickEvent()

{

count++;

if(count >= 60){

count = 0;

minute++;

Unicode::snprintf(textArea1Buffer, TEXTAREA1_SIZE,"%d", minute);

textArea1.invalidate();

}

circle1.invalidate();

circle1.setArc(count * 6, count * 6 + 30);

circle1.invalidate();

circle_Red.invalidate();

circle_Red.setArc(count * 6 + 180, count * 6 + 30 + 180);

circle_Red.invalidate();

}

编译下载就可以看到两个圆弧对立转

.



刚表态过的朋友 (90 人)

关键词:

发表评论

最新评论

2020-6-2 15:09

“ Unicode::snprintf(textArea1Buffer, TEXTAREA1_SIZE, "%d", minute);  textArea1.invalidate();”这两条语句在TouchGFX4.12.3版本里会报错,至于怎么解决就需要你打开“Screen2ViewBase.hpp"为可读写,添加一个头文件"#include ",就完美解决评论

GMT+8, 2020-12-20 02:40, Processed in 0.016028 second(s), 13 queries

.

touchgfx程序_6.TouchGFX界面应用之定时器机制相关推荐

  1. touchgfx程序_TouchGFX在原子STM32F429阿波罗板 开发与移植 简易教程

    本帖最后由 a1211762993 于 2017-4-6 15:20 编辑 由于TouchGFX属于收费图形库,其价格对于普通电子爱好者来说偏高,导致使用TouchGFX的人数较少. 考虑到图形库的推 ...

  2. touchgfx程序_TouchGFX使用教程

    TouchGFX使用教程(一) 前言 TouchGFX背景 TouchGFX工程的结构 后记 前言 大家好,本人最近在做项目开发,项目中使用TouchGFX工具进行开发界面,同时使用stm32系列的芯 ...

  3. 在微信小程序上,帮助中心界面实现类似手风琴案例

    在微信小程序上,帮助中心界面实现类似手风琴案例 wxml <view class="container"><block wx:for="{{arrdat ...

  4. 奉献给你:《Visual C# 2005程序开发与界面设计秘诀》

    对于<Visual C# 2005程序开发与界面设计秘诀>,我们将其定位为一本Visual C# 2005的进阶技术研讨书,针对的是曾使用过Visual C# 2002或者已经对新版本的V ...

  5. Qt界面设计器中的界面预览与程序运行时界面不一样

    用QtCreate创建的界面应用程序,在ui文件中拖入所需的控件,并进行布局,布局完成后在ui文件的工具->form Editor->预览可查看当前界面.问题便是:通过预览查看界面布局没有 ...

  6. 前端界面请假管理java_小程序新请假界面

    小程序新请假界面 效果: .wxml: 新请假 请假结果 上传图片: + 添加图片 删除 \r\n\r\n\r\n\r\n\r\n\r\n年级: \r\n\r\n\r\n\r\n\r\n\r\n班级: ...

  7. Java实验:编写网络聊天程序(图形界面)

    课程名称 高级Java程序设计 实验项目 Java网络编程 实验目的: 使用客户机/服务器模式.基于TCP协议编写一对多"群聊"程序.其中客户机端单击"连接服务器&quo ...

  8. 如何在小程序内实现界面快速置顶功能?

    通过使用触发器中滚动到指定项实现界面快速置顶. 效果展示 前置准备 使用 循环容器 制作好的内容列表 置顶图标 数据表 具体步骤 1.创建列表项滚动触发器 2.创建点击置顶触发器 步骤分解 1.创建列 ...

  9. 微信小程序汇率计算界面

    微信小程序汇率计算界面 最近在学习微信小程序,自己制作了一个自己想制作的小应用--汇率计算界面(真不知道为什么自己对汇率那么感兴趣XD ) 数据接入 在获取数据之前先在data里面添加几个参数 mon ...

最新文章

  1. Kubernetes之路 2 - 利用LXCFS提升容器资源可见性
  2. 关系数据库范式(1)
  3. jQuery利用JSONP解决AJAX跨域请求
  4. js 利用事件委托解决mousedown中的click
  5. 4种不同类别的机器学习概述
  6. 你离BAT之间,只差这一套Java面试题
  7. creo如何更改打开时显示方式_图纸打开显示问号时的一种快捷更改方法【AutoCAD教程】...
  8. 基于JAVA+SpringBoot+Vue+Mybatis+MYSQL的大学生健康档案管理系统
  9. C++基础语言知识大汇总(不断更新!!!)
  10. exception内置对象
  11. myBatis无法用log4j输出日志
  12. 适配4G模块 EC20 使用ppp拨号上网
  13. 概率论基础-严士健 第二版 习题与补充3.2答案
  14. 知识图谱—知识存储—仅用neo4j搭建简单的金融知识图谱
  15. 计算机网络电子邮件的基本格式,怎样的格式才是正确的电子邮件格式?
  16. speedoffice(Excel)如何取消隐藏的工作表
  17. PS的快捷键(7.14)
  18. 投之家与妙优车达成战略合作,加强推进优质资产端建设
  19. Trie(前缀树,prefix tree)
  20. Java后端开发工程师简历加分项:个人在线简历的搭建

热门文章

  1. MEM/MBA 复试准备(06)政治基础
  2. 625 Minimum Factorization
  3. IOS xcode工程 找不到 .framework头文件
  4. 6.JAVA-链表实例
  5. D - 猪钱罐 HDU - 1114
  6. AD官网上获取PCB库
  7. web传真群发系统应该如何设计?请朋友指教!
  8. linux系统管理总结,Linux系统管理总结
  9. mysql外键1050_MYSQL建表错误:ERROR 1050
  10. 全景AR增强监视系统实现4K、8K超高清大场景视频电子放大、缩放细节显示(二)