1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
到目前为止,我已经能够在 TouchGFX 中创建一个带有通配符的 TextArea,然后通过程序代码编辑它的缓冲区——这是可行的。我只是编辑数组并使其无效。完毕。
但是,当我尝试仅使用代码创建 Textarea 时,我惨遭失败。例如,我创建了盒子和可滚动容器,将东西放在彼此内部并且它们可以工作(并且它们中的许多在我在绘制时循环遍历的数组中),但是文本区域非常疯狂并且也很奇怪(在)记录下,并且有互联网上几乎没有例子,我用手指搜索了一下血,在谷歌中几乎没有未点击的链接。 我的逻辑是查看由 TouchGFX 生成器创建的 TextAreas 并重现该过程 - 与其他东西一起使用,但不适用于 TextArea。这是一个由 TouchGFX 代码从ViewBase自动生成的工作:
更具体地说,我不知道我必须放什么(当我创建自己的 TextArea 时)而不是它的参数touchgfx::TypedText(T_SINGLEUSEID63).getText()。文档说它是 TypedText 类型 - 它是什么?我如何生成一个?从何而来?它到底是什么?它的文档似乎没有任何函数可以生成这种晦涩类型的对象。 另外,如果我已经执行了setWildcard(),为什么还要将setTypedText降低两行?使用其他一些一次性 ID,无论它是什么。似乎完全无用的代码行。如果我已经将 Wildcardbuffer 附加到 TextArea,我不明白它会做什么。 每当我用代码手动更改 TextArea 通配符时,我只是更改 Buffer 数组并使其失效——我不需要任何 TypedText 或任何东西。但是每当我只是删除那些我不理解的行时(它不会用我自己的 TextAreas 未更改的行进行编译 - 我想我需要以某种方式更改它们,我猜?)并将通配符缓冲区绑定到 Textarea,它根本就没有在屏幕上显示任何东西——就好像我没有创造任何东西一样。 |
|
相关推荐
1个回答
|
|
使用代码创建自定义 TEXTAREA 的完整解决方案
在参与这篇文章的每个人和其他线程中的其他人的帮助下(当然,还有我自己不可否认的天才 *咯咯*),这里总结了如何纯 (99%) 使用代码创建文本区域。从零开始: 打开 TouchGFX 设计器。在上方的选项卡中,转到“文本”->“排版”。确保有您要使用的字体(或添加另一种字体),您需要使用 TouchGFX Designer 生成字母字形。就我而言,我是这样做的:我使用的是 Verdana 40px 字体;在“通配符范围”中,我写了 0-9,AZ,az;这将强制 TouchGFX 为所有字母和数字生成字形,即使在 TouchGFX Designer 中本地创建的 TextAreas 没有使用它们。否则,您可能会错过该字体的几个字母(并且会看到“?”)。如果您需要其他字符,例如逗号之类的,可以使用“通配符”部分。 接下来,转到“资源”选项卡。“资源”是我们与每个 TextArea 关联的一组格式规则。字体大小、字体方向、对齐方式和内容。添加新资源以与我们将使用代码创建的新 TextAreas 一起使用。您可以将一个资源与多个 TextAreas 一起使用。它只是一种格式化功能,而不是文本本身。我将为我的自定义 TextAreas 使用“ResourceId3”。将资源的字体设置为您在1 中使用的字体。在资源文本中,写入“<>”(表示“通配符”),如果您在其中写入除“<>”之外的一些文本,它将在所有 TextAreas 中可见使用该资源。然而,通配符对于每个 TextArea 都是单独的。就个人而言,我希望所有 TextAreas 都具有完全不同的内容, 现在我们已经强制 TouchGFX 为我们将要使用的字体生成所有字符的字形,并且我们已经创建了文本格式规则,也称为资源(规则是:使用带有字形的字体,左对齐,文本方向从左到右, 文本完全是通配符)。所以我们终于开始用代码生成东西了。 创建要在其中创建自定义 TextAreas 的屏幕。屏幕可以是空的,我们只需要生成屏幕的文件来将我们的东西放入其中。“生成代码”。 找到屏幕视图文件。它应该位于“/gui/”文件夹中(确切位置取决于您是先在 Cube 还是 TouchGFX 中创建项目,但它始终位于名为“gui/”或“gui/src/screenname_screen/”的文件夹中,“gui /included/..." 用于其头文件)。寻找“gui”文件夹(不是 gui_generated!)。我的屏幕名为“NewScreen”,我的项目首先在 TouchGFX Designer 中创建,然后导入到我正在处理的 CubeIDE 中。如果您对如何将其导入那里感到好奇,YouTube 频道“EE by Karl”上有一个视频就是这样做的。 我打开“NewScreenView.cpp”和“NewScreenView.hpp”。在头文件中,我们需要包含我们将要使用的 TouchGFX 组件。如果您不确定要添加什么,请在 TouchGFX 设计器中创建一个小部件,生成代码并转到 gui_generated 中的“NewScreenViewBase.cpp/hpp”。该 hpp 将包含生成这些特定小部件所需的内容。将这些包含复制到您的 NewScreenView.hpp。我的 NewScreenView.hpp 有这些包括:
接下来,让我们在头文件中声明我们新的自定义 TextArea。 我的整个头文件如下所示:
没有什么能阻止您声明一个框数组或按钮数组或文本区域数组。我以这种方式创建一系列盒子没有问题, 剩下的就是实际向我们的 NewScreen.cpp 添加内容,它在我手中看起来像这样:
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2730 浏览 1 评论
3239 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1808 浏览 1 评论
3647 浏览 6 评论
6035 浏览 21 评论
1339浏览 4评论
198浏览 3评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
350浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
442浏览 2评论
STM32处理增量式编码器Z信号如何判断中断是正转的还是反向转的?
273浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 09:07 , Processed in 1.271516 second(s), Total 76, Slave 60 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号