ST意法半导体
登录
直播中
河神大人
9年用户
1574经验值
擅长:电源/新能源
私信
关注
[问答]
代码无法绘制所有自定义小部件是为什么?怎么解决?
开启该帖子的消息推送
HAL
我遵循了二维码教程。当您只绘制一个自定义小部件时,它会起作用。但是当我在同一屏幕或自定义容器中多次添加相同的自定义小部件时,代码无法绘制所有自定义小部件,似乎绘制功能被中断并且我的二维码不完整。
也许关于 HAL?有什么建议吗?
我在 4.16 中添加了我的示例项目。
回帖
(1)
李开英
2023-1-6 11:20:12
是的,代码中有一些错误,并且肯定库它并不完美(
https://github.com/nayuki/QR-Code-generator/tree/master/cpp
),但最后我让它工作改变下一个的建议绘制代码:
void QrCodeWidget::draw(const touchgfx::Rect& invalidatedArea) const
{
if (!code) {
return;
}
bool result = true;
for(int yPos = 0; yPos < code->getSize(); yPos++) {
for(int xPos = 0; xPos < code->getSize(); xPos++) {
result = code->getModule(xPos, yPos);
Rect rect(xPos*scale, yPos*scale, scale, scale);
translateRectToAbsolute(rect);
HAL::lcd().fillRect(rect, result ? 0x00000000 : 0xffffffff, 255);
}
}
}
是的,代码中有一些错误,并且肯定库它并不完美(
https://github.com/nayuki/QR-Code-generator/tree/master/cpp
),但最后我让它工作改变下一个的建议绘制代码:
void QrCodeWidget::draw(const touchgfx::Rect& invalidatedArea) const
{
if (!code) {
return;
}
bool result = true;
for(int yPos = 0; yPos < code->getSize(); yPos++) {
for(int xPos = 0; xPos < code->getSize(); xPos++) {
result = code->getModule(xPos, yPos);
Rect rect(xPos*scale, yPos*scale, scale, scale);
translateRectToAbsolute(rect);
HAL::lcd().fillRect(rect, result ? 0x00000000 : 0xffffffff, 255);
}
}
}
举报
更多回帖
rotate(-90deg);
回复
相关问答
HAL
如何在
自定义
键盘
小部件
上制作模式窗口?
2023-01-12
421
如何访问每个
自定义
容器实例中的单个
小部件
成员呢?
2023-01-03
465
请问如何解决TouchGFX
小部件
被模态窗口阻止的问题呢?
2023-01-09
334
Harmony 2.04
小部件
2020-04-09
1119
如何进行更改以适应新的LCD和触摸控制器?
2022-12-30
336
有没有办法实现一个像通配符的ButtonWithLabel
小部件
呢?
2023-01-04
526
如何将一个
自定义
容器从一个GFX项目导出到另一个GFX项目?
2022-12-14
450
LabVIEW
自定义
控件的好处是什么?
2018-05-13
6911
请问鸿蒙
自定义
控件中如何刷新canvas?
2022-05-31
1851
如何检测
自定义
容器中的任何一个上的长按按钮呢?
2023-01-04
431
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分