[GUI] TouchGFX界面应用之按钮与响应

[复制链接]
1049|1
 楼主| 51xlf 发表于 2022-2-22 23:56 | 显示全部楼层 |阅读模式
学习一个组件进度条,实现两个按键控制进度条。
找到按钮,我使用两个带文字的按钮和任意找一个进度条
175229psz1duidwhwndjcn.png

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

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

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

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

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

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

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

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

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


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

将两个函数改成如下,运行即可,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();

}

实验效果
175230w3m2tthvuohkzu1m.png



mutable 发表于 2022-2-25 10:26 | 显示全部楼层
图标简单时尚
您需要登录后才可以回帖 登录 | 注册

本版积分规则

551

主题

9998

帖子

24

粉丝
快速回复 在线客服 返回列表 返回顶部