打印
[GUI]

TouchGFX界面应用之按钮与响应

[复制链接]
669|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
51xlf|  楼主 | 2022-2-22 23:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
学习一个组件进度条,实现两个按键控制进度条。
找到按钮,我使用两个带文字的按钮和任意找一个进度条


修改按钮中间的值,我设置为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();

}

实验效果




使用特权

评论回复
沙发
mutable| | 2022-2-25 10:26 | 只看该作者
图标简单时尚

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

535

主题

9633

帖子

23

粉丝