GUI mit LVGL: eigenes Widget?

OP Persönliche Seite #7356769
Lesenswert?
• ▲
▼

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

#7356776
Lesenswert?
• ▲
▼

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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.