Hallo zusammen,
da ich total Anfänger bin, bitte nicht meckern wenn die Frage dumm ist, aber ich habe nichts gefunden was mir hilft...
Also, ich hab einen "SenseHat" auf meinem Raspberry Pi und dachte das es eine gute Python Übung wäre einfach erstmal alle
Messdaten anzuzeigen. (der einfachheit halber erstmal nur eine - Luftfeuchtigkeit) - Das war easy... :
Aber bei der Tkinter Version stoße ich auf das Problem das sich die Variable nicht aktualisiert.
Ich hab' zwar verschiedene Beispiele gefunden, in denen sich Label Inhalte automatisch ändern, aber warscheinlich reicht mein Python wissen einfach nicht aus um diese auch zu verstehen.
Würde mich freuen, wenn Ihr mir kurz auf die Sprünge helfen könntet.
Anfängerfrage: Label mit Messdaten aktualisieren
@Dirk L.: Wenn Dein Python-Wissen nicht ausreicht die Programme zu verstehen, dann wäre es naheliegend Dein Python-Wissen zu erweitern, bis es gross genug ist um sie zu verstehen.
Die Quelltextschnippsel in den Bildschirmfotos sind aber auch *sehr* rudimentär. Ein paar Zeilen Code auf Modulebene. Nicht einmal Funktionen sind zu sehen. Für GUI-Programmierung braucht man nicht nur die sondern auch objektorientierte Programmierung um das sauber und nachvollziehbar zu strukturieren, und dann auch noch ereignisorientierte Programmierung weil GUI-Programmierung nicht mehr so funktioniert das der Programmierer den Programmablauf einfach linear runter schreibt/vorgibt, sondern die GUI-Hauptschleife die Kontrolle hat.
Edit (ungetestet):
Die Quelltextschnippsel in den Bildschirmfotos sind aber auch *sehr* rudimentär. Ein paar Zeilen Code auf Modulebene. Nicht einmal Funktionen sind zu sehen. Für GUI-Programmierung braucht man nicht nur die sondern auch objektorientierte Programmierung um das sauber und nachvollziehbar zu strukturieren, und dann auch noch ereignisorientierte Programmierung weil GUI-Programmierung nicht mehr so funktioniert das der Programmierer den Programmablauf einfach linear runter schreibt/vorgibt, sondern die GUI-Hauptschleife die Kontrolle hat.
Edit (ungetestet):
Code: Alles auswählen
#!/usr/bin/env python
# coding: utf8
import Tkinter as tk
from sense_hat import SenseHat
UPDATE_INTERVAL = 250 # in ms.
class SensorsUI(tk.Frame):
def __init__(self, parent, sensors):
tk.Frame.__init__(self, parent)
self.sensors = sensors
tk.Label(self, text='Luftfeuchtigkeit:').pack(side=tk.TOP)
self.humidity_label = tk.Label(self)
self.humidity_label.pack(side=tk.TOP)
self.update_display()
def update_display(self):
self.humidity_label['text'] = str(self.sensors.humidity)
self.after(UPDATE_INTERVAL, self.update_display)
def main():
root = tk.Tk()
sensors_ui = SensorsUI(root, SenseHat())
sensors_ui.pack(side=tk.TOP)
root.mainloop()
if __name__ == '__main__':
main()