Verfasst: Dienstag 16. Dezember 2008, 22:22
Ich dachte jetzt eher an den Code nicht an den Namen 

Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Code: Alles auswählen
import Tkinter as tk
class Segment7(tk.Canvas):
def __init__(self, master, breite=200,
hintergrund="black", ziffernfarbe="white"):
tk.Canvas.__init__(self, master)
d = self.dicke = breite // 8
l = breite - 3*d
self.hintergrund, self.ziffernfarbe = hintergrund, ziffernfarbe
self.config(width=breite, height=2*l+5*d, bg=hintergrund)
self.segmente = {"a":(2*d,d,d+l,d),
"b":(d+d+l,d+d,d+d+l,d+d+l),
"c":(d+d+l,3*d+l,d+d+l,3*d+l+l),
"d":(2*d,4*d+l+l,d+l,4*d+l+l),
"e":(d,3*d+l,d,3*d+l+l),
"f":(d,d+d,d,d+d+l),
"g":(2*d,2.5*d+l,d+l,2.5*d+l)}
self.ziffern = ["abcdef","bc","abged","abgcd","fgbc","afgcd","afedcg",
"abc","abcdefg","abcdfg"]
def loesche(self):
for segment in self.ziffern[8]:
self.create_line(self.segmente[segment],
fill=self.hintergrund, width=self.dicke)
def zeige(self,char):
try:
ziffer = int(char)
except ValueError:
return
self.loesche()
for segment in self.ziffern[ziffer]:
self.create_line(self.segmente[segment],
fill=self.ziffernfarbe, width=self.dicke)
if __name__ == "__main__":
root = tk.Tk()
anzeige = Segment7(root, breite=300)
anzeige.pack()
anzeige.bind_all("<KeyPress>",lambda e:anzeige.zeige(e.char))
root.mainloop()
Sinnvoller als den Code jetzt für dein Programm einfach zu übernehmen (falls du das tust) ist es in jedem Fall, wenn du versuchst, den Code zu verstehen, und damit meine ich wirklich *VERSTEHEN*, d.h. z.B. jemand anderem Zeile für Zeile zu erklären, was da passiert und warum die Zeile so ist wie sie ist. Das ist mit Arbeit verbunden (weil auch Elemente enthalten sind, die man nicht unbedingt am Anfang eines Programmierkurses lernt), aber eine lohnende Arbeit.Dorfl hat geschrieben:so... erstmal grooooßes Danke , sowohl für die erklärung als auch dafür das du dir die arbeit gemacht hast und nen beispielprogramm geschrieben hast.