callit in Tkinter' after erhält unerwartet Argumente
Verfasst: Dienstag 13. Januar 2009, 11:06
Hallo.
ich verwende after etwa so:
das ganze geschieht in einer von Tk abgeleiteten Klasse. largs ist eine Liste von Argumenten, die Klassenmethode methodename benötigt.
Der Aufruf hat eigentlich immer (wenigstens 100 Tests) einwandfrei funktioniert.
Jetzt kam aber plötzlich ein komischer Fehler:
Tkinter after Methode von _Misc
die lokale Funktion callit hat plötzlich 2 Argumente übergeben bekommen. Dies führt natürlich zu einem Fehler, da diese keine Argumente braucht.
In allen folgenden Aufrufen von after mit irgendwelchen Klassenmethoden, kam stets der gleich Fehler wieder.
Hatte jemand schon mal ein ähnliches Problem, oder ist das ein Bug in Tkinter?
mfg pysq
ich verwende after etwa so:
Code: Alles auswählen
self.after(0, methodenname, *largs)
Der Aufruf hat eigentlich immer (wenigstens 100 Tests) einwandfrei funktioniert.
Jetzt kam aber plötzlich ein komischer Fehler:
Tkinter after Methode von _Misc
Code: Alles auswählen
def after(self, ms, func=None, *args):
"""Call function once after given time.
MS specifies the time in milliseconds. FUNC gives the
function which shall be called. Additional parameters
are given as parameters to the function call. Return
identifier to cancel scheduling with after_cancel."""
if not func:
# I'd rather use time.sleep(ms*0.001)
self.tk.call('after', ms)
else:
def callit():
try:
func(*args)
finally:
try:
self.deletecommand(name)
except TclError:
pass
name = self._register(callit)
return self.tk.call('after', ms, name)
In allen folgenden Aufrufen von after mit irgendwelchen Klassenmethoden, kam stets der gleich Fehler wieder.
Hatte jemand schon mal ein ähnliches Problem, oder ist das ein Bug in Tkinter?
mfg pysq