.after() und Hilfe
Verfasst: Freitag 7. Dezember 2018, 12:49
Hallo nochmal,
ich habe seit meinem letzten Post den Code nochmal überarbeitet und versucht es selber auf die Reihe zu bekommen. Leider verstehe ich nicht, warum mir noch immer Fehler angezeigt werden:
Warum wird mir die .after() Funktion als Fehler angezeigt?
Warum kann ich in der Funktion Auswertung die Label nicht aufrufen?
Ich brauche keine Musterlösung sondern einen Denkanstoß.... Danke
ich habe seit meinem letzten Post den Code nochmal überarbeitet und versucht es selber auf die Reihe zu bekommen. Leider verstehe ich nicht, warum mir noch immer Fehler angezeigt werden:
Code: Alles auswählen
from tkinter import *
import time
import serial
import RPi.GPIO as GPIO
ser = serial.Serial(
port='/dev/ttyAMA0',
baudrate=9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
counter=0
root = Tk()
root.configure(bg="white")
root.wm_minsize(width=1024,height=600)
Grid.rowconfigure(root, 0, weight=1)
Grid.columnconfigure(root, 0, weight=1)
frame=Frame(root)
frame.grid(row=0, column=0, sticky=N+S+E+W)
class Application:
def KachelO(self,a,Platz):
label = Label(frame,text=Platz,bg="white",bd=1, relief = SUNKEN)
label.grid(row=0, column=a, sticky=N+W+E)
Seriennummer = Label(frame,text="Seriennummer:",anchor=W)
Seriennummer.grid(row=1,column=a,sticky=W+N)
Belegt=Label(frame,text="Belegt?",font = "bold")
Belegt.grid(row=3,column=a,sticky=N)
AntwortaufBelegt=Label(frame,text="JA",bg="green")
AntwortaufBelegt.grid(row=4,column=a,sticky=N)
Bereit=Label(frame,text="Einsatzbereit?",font = "bold")
Bereit.grid(row=6,column=a,sticky=N)
AntwortaufBereit=Label(frame,text="JA",bg="green")
AntwortaufBereit.grid(row=7,column=a,sticky=N)
self.loop()
def loop(self):
self.abfrage()
self.auswertung()
self.after(100,self.loop) #Fehler 1
def abfrage(self):
self.x=ser.readline()
if self.x != b' ':
self.reading = ser.readline().decode()
if self.reading:
if self.reading.endswith('\r\n'):
self.Distanz = float(self.reading.strip())
else:
self.Temperatur = float(self.reading)
def auswertung(self):
if self.Distanz < 20:
self.AntwortaufBelegt['text']="JA" #Fehler 2
else:
self.AntwortaufBelegt['text']="NEIN"
if self.Temperatur < 25:
self.Bereit['text']="JA"
else:
self.Bereit['text']="NEIN"
A=Application()
for row_index in range(32):
Grid.rowconfigure(frame, row_index, weight=1)
for col_index in range(4):
Grid.columnconfigure(frame, col_index, weight=1)or row_index
A.KachelO(0,"Platz 1")
A.KachelO(1,"Platz 2")
A.KachelO(2,"Platz 3")
A.KachelO(3,"Platz 4")
label9=Label(root,text="Anzahle der Endoskope im Schrank:",bg="white",anchor=W, bd=1, relief = SUNKEN)
label9.grid(row=32,column=0,sticky=E+S+N+W)
root.mainloop()
Warum wird mir die .after() Funktion als Fehler angezeigt?
Warum kann ich in der Funktion Auswertung die Label nicht aufrufen?
Ich brauche keine Musterlösung sondern einen Denkanstoß.... Danke