Hallo zusammen, nachdem das Forum von LVGL eher bescheiden frequentiert ist, versuche ich mein Glück mal hier. Wer es nicht kennt: LVGL ist eine freie GUI-Bibliothek für Mikrocontroller, vergleichbar mit TouchGFX (aber nicht auf STM32 beschränkt). Auf einem STM32L452 mit einem ILI9341-Bildschirm habe ich das auch einschließlich FreeRTOS schön ans Laufen bekommen. Nun würde ich gerne ein eigenes Widget implementieren - einfach nur eine viereckige "LED", als Abwandlung von lv_led. Ich habe also erst mal nur den Code von lv_led kopiert, alles in lv_led_rect umbenannt, compiliert und gelinkt. Der Konstruktor und der Event-Handler werden auch brav aufgerufen. Nur auf dem Bildschirm passiert nichts. Verwende ich stattdessen lv_led (dessen Code ja bis auf die Umbenennung nach lv_led_rect exakt identisch ist), sind die "LEDs" da. *Frage*: Muss ein neues Widget noch in irgendeiner Form registriert werden, oder muss man sonst etwas beachten? Leider bekommt man bei einer Google-Suche nach "lvgl custom widget" nur ein (nicht hilfreiches) Python-Beispiel und einen Haufen Schrottseiten. Viele Grüße, Max
Hattest du im lvgl Forum schon gefragt? Der Chef antwortet da häufig auch selber. Die Widgets werden ja zur Laufzeit instantiiert, also können die auch eine ID haben die einem Interpreter dann fehlt. Wenn es nicht mit Funktionpointern geht. Eckige LED wäre auch über die Styles möglich, aber dir geht es vermutlich um das Prinzip. Alternativ kann man Widgets ja auch über zusammensetzen vorhandener Elemente bauen. Bin gespannt wie das im SLS gelöst werden soll, da fehlt das ja auch noch. Edit: IDs sehe ich im Code nicht, es läuft alles über linked lists von Objekten und daher müssten eigene Widgets funktionieren.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.