ST意法半导体
直播中

河神大人

9年用户 1574经验值
擅长:电源/新能源
私信 关注
[问答]

代码无法绘制所有自定义小部件是为什么?怎么解决?

我遵循了二维码教程。当您只绘制一个自定义小部件时,它会起作用。但是当我在同一屏幕或自定义容器中多次添加相同的自定义小部件时,代码无法绘制所有自定义小部件,似乎绘制功能被中断并且我的二维码不完整。
也许关于 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);  
  •                 }
  •         }
  • }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分