Funjoy
Erfahrenes Mitglied
Hallo,
Ich bin dabei Python zu lernen habe auch schon einiges erlernt jedoch bin ich jetzt bei der GUI Programmierung mit dem Modul Tkinter angekommen und habe ein kleines Problem.
Mithilfe des Moduls Tkinter und meinen schlauen Buch wollte ich ein Farbmischer der die Farben Rot, Grün und Blau michen kann (mit Checkbuttons), wie im Beispiel vom Buch nach programmieren (also abschreiben ^^).
Auf der CD vom Buch liegt das Beispiel vor, hier der Code:
Das Script funktioniert einwandfrei.
Mein Script jedoch nicht
Hier mein Code:
Ich kann keinen Rechtschreibfehler oder ähnliches erkennen. Auch habe ich keinen Einrückungsfehler gefunden aber das Script gibt nur den Checkbutton Rot aus und nicht die anderen zwei Grün und Blau?
Folgende Fehlermeldung bekomm ich von Interpreter:
Traceback (most recent call last):
File "C:\Python24\pyUEbung\GUI\farbmischer.pyw", line 29, in -toplevel-
farbmischer = Farbmischer()
File "C:\Python24\pyUEbung\GUI\farbmischer.pyw", line 16, in __init__
command=self.mix))
File "C:\Python24\lib\lib-tk\Tkinter.py", line 2267, in __init__
Widget.__init__(self, master, 'checkbutton', cnf, kw)
File "C:\Python24\lib\lib-tk\Tkinter.py", line 1861, in __init__
self.tk.call(
TclError: can't invoke "checkbutton" command: application has been destroyed
Kann jedoch nichts damit Anfangen
In den Zeilen 29 und 16 kann ich keinen Fehler finden.
MfG Funjoy
Ich bin dabei Python zu lernen habe auch schon einiges erlernt jedoch bin ich jetzt bei der GUI Programmierung mit dem Modul Tkinter angekommen und habe ein kleines Problem.
Mithilfe des Moduls Tkinter und meinen schlauen Buch wollte ich ein Farbmischer der die Farben Rot, Grün und Blau michen kann (mit Checkbuttons), wie im Beispiel vom Buch nach programmieren (also abschreiben ^^).
Auf der CD vom Buch liegt das Beispiel vor, hier der Code:
Python:
#----------------------------------------------------
# Dateiname: farbmischer.pyw
#
# Objektorientierte Programmierung mit Python
# Kap. 15
# Michael Weigend 8. 10. 03
#----------------------------------------------------
from Tkinter import *
class Farbmischer:
def __init__(self):
self.fenster = Tk()
self.rot, self.gruen, self.blau=IntVar(), IntVar(), IntVar() #1
self.check = [] #2
for (farbe, var) in [('rot',self.rot),
('gr\xfcn',self.gruen),
('blau',self.blau)]:
self.check.append(Checkbutton(self.fenster,
text=farbe,
offvalue=0, onvalue=255,
variable=var,
command=self.mix))
self.farbfeld = Label(self.fenster,width=20, height=6)
self.farbfeld.pack(side=LEFT) #3
for button in self.check:
button.pack(side=RIGHT)
self.fenster.mainloop()
def mix(self): #4
summe='#'
for farbe in (self.rot, self.gruen, self.blau):
summe += str(hex(farbe.get())).lstrip('0x').zfill(2)
self.farbfeld.config(bg=summe) #5
farbmischer = Farbmischer()
Das Script funktioniert einwandfrei.
Mein Script jedoch nicht

Hier mein Code:
Python:
#farbmischer.pyw
from Tkinter import *
class Farbmischer:
def __init__(self):
self.fenster = Tk()
self.rot, self.gruen, self.blau = IntVar(), IntVar(), IntVar()
self.check = []
for (farbe, var) in [('rot', self.rot),
('gr\xfcn', self.gruen),
('blau', self.blau)]:
self.check.append(Checkbutton(self.fenster,
text=farbe,
offvalue=0, onvalue=255,
variable=var,
command=self.mix))
self.farbfeld = Label(self.fenster,width=20,height=6)
self.farbfeld.pack(side=LEFT)
for button in self.check:
button.pack(side=RIGHT)
self.fenster.mainloop()
def mix(self):
summe='#'
for farbe in (self.rot, self.gruen, self.blau):
summe += str(hex(farbe.get())).lstrip('0x').zfill(2)
self.farbfeld.config(bg=summe)
farbmischer = Farbmischer()
Ich kann keinen Rechtschreibfehler oder ähnliches erkennen. Auch habe ich keinen Einrückungsfehler gefunden aber das Script gibt nur den Checkbutton Rot aus und nicht die anderen zwei Grün und Blau?
Folgende Fehlermeldung bekomm ich von Interpreter:
Traceback (most recent call last):
File "C:\Python24\pyUEbung\GUI\farbmischer.pyw", line 29, in -toplevel-
farbmischer = Farbmischer()
File "C:\Python24\pyUEbung\GUI\farbmischer.pyw", line 16, in __init__
command=self.mix))
File "C:\Python24\lib\lib-tk\Tkinter.py", line 2267, in __init__
Widget.__init__(self, master, 'checkbutton', cnf, kw)
File "C:\Python24\lib\lib-tk\Tkinter.py", line 1861, in __init__
self.tk.call(
TclError: can't invoke "checkbutton" command: application has been destroyed
Kann jedoch nichts damit Anfangen

In den Zeilen 29 und 16 kann ich keinen Fehler finden.
MfG Funjoy