立即注册 找回密码

微雪课堂

搜索

3.TouchGFX界面应用之按钮与响应

2019-11-4 17:28| 发布者: Ezio_神仙醋| 查看: 12529| 评论: 6

摘要: 上一节我们TouchGFX 添加了背景和文字显示,这次我们添加按键和按键动作,实现一个什么功能呢,那就再学习一个组件进度条,实现两个按键控制进度条。找到按钮,我使用两个带文字的按钮和任意找一个进度条修改按钮中 ...
上一节我们TouchGFX 添加了背景和文字显示,这次我们添加按键和按键动作,实现一个什么功能呢,那就再学习一个组件进度条,实现两个按键控制进度条。
找到按钮,我使用两个带文字的按钮和任意找一个进度条

修改按钮中间的值,我设置为80和20,

另外为了区分两个按钮需要对两个按键取一个特别的名字,取名字要按照C语言函数命名规则,那就默认的名字后面加一个20把,另一个一样也是默认名字后面加一个80,那那个进度条叫什么呢,反正就一个就默认把,然后在右边interactions添加一个interaction(互动?)

设置当20按钮被点击时候设置进度条值为20,同样在加一个互动设置当80按钮被点击时候设置进度条值为80

设置好我们运行一下,鼠标点两个按钮发现进度条值被改变了,好,本章,,,,,,继续。
这样设置是不是太差劲了只能在80和20之间跳,那可不可以一点点慢慢加或者慢慢减呢,当然可以。
但是那样按钮这样取名字就不是很好看了,我们重新来取名字,不然叫UP和DOWN,把按键名字和里面字一起改了。

然后把互动里面也一起修改了,改成调用新的虚函数(它代表的意思是响应按钮按下消息的代码是在一个称为 DOWN_Function() 的虚函数),把UP也一起改了。

画重点来了,在我们TouchGFX 工程目录下有一个 \simulator\msvs 文件夹,里面有一个Application.sln的文件使用Visual Studio 打开,在Visual Studio 旁边有一个这样的工程,可以看看你们有一些什么文件。

Screen1ViewBase.hpp中有自动生成函数原型
virtual void DOWN_Function()
virtual void UP_Function()
两个函数,但是这个文件是不让你修改的,并且告诉你.//覆盖此函数并在ScreenlView中实现,这个函数怎么写呢,定义一个变量然后,然后每次按按钮被按下执行加1或者减1,所以我们在Screen1View.hpp中声明这个函数和这个变脸。

然后在Screen1View.cpp中定义这个函数,加1或者减1并且打印数据,保存代码,请养成一个随手保存代码的习惯。

回到TouchGFX运行试一试,注意如果你的点运行很长时间没有运行模拟器那么你代码有问题,注意软件左下角提示


运行模拟器按下按钮发现弹出一个命令行的对话框。每次按下按钮都输出对应的值。把这些值限制在0到100,并且送给进度条显示。

将两个函数改成如下,运行即可,circleProgress1为进度条名字,setValue是设置其值,invalidate是更新显示,在Visual Studio 里面对函数按下F12可以查看函数原形和说明。还有一个BUG为第一次按下按钮发现进度条是跳过去的,这个BUG留给你们解决。
void Screen1View::DOWN_Function()
{
count--;
if (count < 0) {
count = 100;
}
touchgfx_printf("count %d\r\n", count);
circleProgress1.setValue(count);
circleProgress1.invalidate();
}

void Screen1View::UP_Function()
{
count++;
if (count > 100) {
count = 0;
}
touchgfx_printf("count %d\r\n", count);
circleProgress1.setValue(count);
circleProgress1.invalidate();
}
实验效果

最后附上工程:
https://www.waveshare.net/w/upload/7/7e/TouchGFX%E7%95%8C%E9%9D%A2%E5%BA%94%E7%94%A8%E4%B9%8B%E6%8C%89%E9%92%AE%E4%B8%8E%E5%93%8D%E5%BA%94.7z



211

顶一下

刚表态过的朋友 (211 人)

发表评论

最新评论

引用 pengqiangyou 2020-6-2 17:37
: 关于“有一个BUG为第一次按下按钮发现进度条是跳过去的”,这个是初值设置问题,改一下就好了
是的,就是这么简单
引用 游客 2020-6-2 11:14
关于“有一个BUG为第一次按下按钮发现进度条是跳过去的”,这个是初值设置问题,改一下就好了
引用 M.Neil 2020-4-24 08:30
大神们,我的工程打开以后是一连串.cpp和。hpp的文件,你们的文件夹都是自己建的吗?
引用 游客 2020-2-25 16:08
: 楼主 怎么实现多个按键切换标题页面
http://www.waveshare.net/study/article-918-1.html
引用 游客 2020-2-11 11:28
就是说屏幕上方有一排按键,按下不同的按键页面进行切换,就如qt中qtablewidget做的标题页面的效果 才接触这个不是很明白  望指教
引用 游客 2020-2-11 11:25
楼主 怎么实现多个按键切换标题页面

查看全部评论(6)

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-12-22 15:46 , Processed in 0.015531 second(s), 16 queries .