Class Methode in Label aufrufen
Verfasst: Freitag 15. Januar 2016, 17:45
Hallo an alle,
Falls ihr euch fragt wieso ich so ein unnötiges Programm schreibe, unsere Aufgabe(Schule) ist es, eine Ampel in Tkinter zu erzeugen, welche in der Shell z.B. durch "ampel1 = Ampel()" aufgerufen wird, aus der Klasse Ampel() hervorgeht..
Dies habe ich auch schon gemacht, allerdings finde ich, dass es sich bei einer Ampel dann ja auch lohnen würde sie umschalten zu können.
Also habe ich mich durch die Tutorials dieser Welt gelesen und bin nun zu folgendem Code gekommen:
Wenn ich nun in der Shell "ampel=Ampel()" schreibe, bekomme ich die Fehlermeldung, dass die Funktion "methode()" nicht definiert sei.
Ich habe es auch schon mit "methode", "methode(self)", "methode(self, Aktiv)" versucht, allerdings ohne Erfolg.
Nun sitze ich hier und komme an dieser Stelle nicht weiter.
Wäre schön wenn ihr mich helfen könntet.
Falls ihr euch fragt wieso ich so ein unnötiges Programm schreibe, unsere Aufgabe(Schule) ist es, eine Ampel in Tkinter zu erzeugen, welche in der Shell z.B. durch "ampel1 = Ampel()" aufgerufen wird, aus der Klasse Ampel() hervorgeht..
Dies habe ich auch schon gemacht, allerdings finde ich, dass es sich bei einer Ampel dann ja auch lohnen würde sie umschalten zu können.
Also habe ich mich durch die Tutorials dieser Welt gelesen und bin nun zu folgendem Code gekommen:
Code: Alles auswählen
import time
from tkinter import*
# Rot=1 Gelb=2 Grün=3
class Ampel:
metallfarbe="Teal"
höhe=200
breite=75
aktiveLampe="Rot"
def HilfsLabel(label):
counter = 0
def count():
global counter
counter =+ 1
def methode(self, Aktiv):
if(Aktiv==1):
self=Tk()
BG.place(x=87, y=35, width="75" , height="200")
Rot=Label(self ,bg="black")
Aktiv=2
Rot.place(x=97, y=44, width="55" , height="55")
Gelb=Label(self ,bg="yellow")
Gelb.place(x=97, y=108, width="55" , height="55")
Grun=Label(self ,bg="black")
Grun.place(x=97, y=172, width="55" , height="55")
label.config(text=str(counter))
label.after(1000, count)
count()
BG.place(x=87, y=35, width="75" , height="200")
Rot=Label(self ,bg="black")
Aktiv=3
Rot.place(x=97, y=44, width="55" , height="55")
Gelb=Label(self ,bg="black")
Gelb.place(x=97, y=108, width="55" , height="55")
Grun=Label(self ,bg="green")
Grun.place(x=97, y=172, width="55" , height="55")
def __init__(self):
global Aktiv
Aktiv = 1
self=Tk()
self.title("Fabian Blitz - Ampel")
self.config(bg="teal")
self.geometry('250x290')
BG=Label(self , bg="DarkGrey")
BG.place(x=87, y=35, width="75" , height="200")
Rot=Label(self ,bg="red")
Rot.place(x=97, y=44, width="55" , height="55")
Gelb=Label(self ,bg="black")
Gelb.place(x=97, y=108, width="55" , height="55")
Grun=Label(self ,bg="black")
Grun.place(x=97, y=172, width="55" , height="55")
b1=Button(self, text="Umschalten", bg="DarkGrey", command=methode())
b1.place(x=87, y=245)
self.mainloop()
Wenn ich nun in der Shell "ampel=Ampel()" schreibe, bekomme ich die Fehlermeldung, dass die Funktion "methode()" nicht definiert sei.
Ich habe es auch schon mit "methode", "methode(self)", "methode(self, Aktiv)" versucht, allerdings ohne Erfolg.
Nun sitze ich hier und komme an dieser Stelle nicht weiter.
Wäre schön wenn ihr mich helfen könntet.