diff --git a/gui/demos/qrcode.py b/gui/demos/qrcode.py new file mode 100644 index 0000000..f1fa2dc --- /dev/null +++ b/gui/demos/qrcode.py @@ -0,0 +1,47 @@ +# qrcode_test.py Test/demo of QRCodeWidget for nano-gui + +# Inicialize o hardware e o framebuf antes de importar módulos. +from color_setup import ssd # Configuração do display +from gui.core.nanogui import refresh +from gui.core.writer import CWriter +from gui.core.colors import * +import gui.fonts.arial10 as arial10 # Substitua pela fonte disponível +from gui.core.widgets import QRCodeWidget +import asyncio + +# Argumentos comuns +qrcode_args = { + "version": 6, + "scale": 3, + "fgcolor": BLUE, + "bdcolor": RED, + "bgcolor": WHITE, # Garantir fundo branco +} + +async def demo_qr(wri): + # Inicializa o widget QRCode + qr = QRCodeWidget(wri, 10, 10, **qrcode_args) # Row=10, Col=10 + qr.value("https://example.com") # Texto ou URL para o QR Code + qr.show() + refresh(ssd) # Atualiza o display + + await asyncio.sleep(3) # Exibe o QR Code por 3 segundos + + # Testa outro QR Code + qr.value("Hello, NanoGUI!") + qr.show() + refresh(ssd) # Atualiza o display novamente + await asyncio.sleep(3) + +async def main(wri): + await demo_qr(wri) + +def test(): + refresh(ssd, True) # Inicializa e limpa o display + CWriter.set_textpos(ssd, 0, 0) # Garante posição inicial + wri = CWriter(ssd, arial10, WHITE, BLACK, verbose=False) + wri.set_clip(True, True, False) + asyncio.run(main(wri)) + +test() +