Eine Stelle einer Zahl andersfarbig darstellen

Aus Micropython Referenz
Zur Navigation springen Zur Suche springen

Für die Eingabe von Werten mit dem Rotaryencoder des M5DinMeter benötige ich eine Routine, die ein ausgewähltes Digit andersfarbig darstellt. Damit kann dargestellt werden auf welche Stelle der Zahl sich die Eingabe bezieht.
Dazu habe ich Chatgbt.com um Hilfe gebeten. Dessen Lösung ist zwar nicht UIFlow2 kompatibel, obwohl das ausdrücklich gefordert war, bietet aber einen interessanten Ansatz:

from m5stack_ui import M5Screen
from m5stack import M5Led
from uiflow import wait

# Bildschirm initialisieren
screen = M5Screen()
screen.clean_screen()

# Wort und Farben definieren
text = "M5Stack"
colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0), (255, 0, 255), (0, 255, 255), (255, 255, 255)]

# Startposition und Zeichenabstand
x_start, y_start = 10, 50
spacing = 30

# Zeichen einzeln zeichnen
for i, char in enumerate(text):
    color = colors[i % len(colors)]  # Farbe für das Zeichen
    screen.set_screen_color((0, 0, 0))  # Hintergrundfarbe, falls gewünscht
    screen.draw_string(x_start + i * spacing, y_start, char, color=color)