硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2108|回复: 3
收起左侧

[TouchGFX] Container中怎么访问Model

[复制链接]

58

主题

267

回帖

446

积分

高级会员

积分
446
发表于 2019-12-12 17:51:26 | 显示全部楼层 |阅读模式
有个需求,Page1有5个Button,Page2有五种显示状态,点Page1中的不同的Button都是切换到Page2,但是根据点击的Button不同,Page2初始化显示的状态不同。
那么Page1通过Presenter1设置Model中的一个变量,记录点击的按钮ID。
切换到Page2之后,在setupScreen中再通过Presenter2读取Model中记录的值,从而初始化Page2为对应的状态。

这个步骤没问题。

接下来,因为Page1中的按钮太简单了,我要在按钮上添加文字,图片,还有其他信息。
我就会考虑自定义一个Container,里面包含我要的各种元素,一个按钮和一个成员变量记录ID号。
设置好Container中按钮的Click响应函数,函数中将ID号设置到Model中,并切换页面到Page2。
然后在Page1中放置N个Container实例,给每个实例设置一个ID号。
这样当点击Container实例时,就会调用响应函数,进行页面跳转。

我按照这个思路一路做下来都还可以,只要不将参数设置到Model,跳转页面都没问题。
但是当设置参数时就有问题了,因为只有页面才有Presenter,然后才可以调用Model函数。那么Container中怎么访问Model呢?

QQ图片20191212175108.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107585
QQ
发表于 2019-12-13 09:47:20 | 显示全部楼层
帮顶,还没有研究过touchgfx
回复

使用道具 举报

3

主题

73

回帖

82

积分

初级会员

积分
82
发表于 2019-12-25 18:07:02 | 显示全部楼层
TouchGFX的Designer里面是自带自定义控件的。

你说的Container就是自定义控件吧,你想用按键做自定义控件里面的元素然后做页面跳转?

另外TouchGFX里面也有各种预定的Container,比如什么SWAPcontainer啥的。
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
 楼主| 发表于 2019-12-26 00:15:51 | 显示全部楼层
lifeng5478 发表于 2019-12-25 18:07
TouchGFX的Designer里面是自带自定义控件的。

你说的Container就是自定义控件吧,你想用按键做自定义控 ...

我找到了一个曲折的办法。
1、建立自定义控件。
2、给自定义控件设置action和trigger,trigger需要带参数。
3、在interaction中设置一个动作,当action发生时执行trigger。
4、在页面中放置自定义控件的实例(可以是多个)。
5、在页面的interaction中添加动作,为每个实例的trigger指定虚函数回调。可以是一样的函数,如果多个实例有相同函数,则需要指定不同的参数。
6、在回调函数中敲入代码,可以访问presenter。

这样就达到了一个自定义控件模板,在不同的实例上实现不同的操作。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-7 05:08 , Processed in 0.236122 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表