Hallo audax
Ich habe deine vorgeschlagenen Code-Fragmente in mein Skript integriert und es wieder zum laufen gebracht. Gewisse Teile deines Codes wollten aber nicht funktionieren.
Teil-1 Dein Code-Fragment:
Code: Alles auswählen
color_tuple = {
'gray' : (ptr,ptr,ptr),
'blue' : (0,0,ptr),
'green' : (0,ptr,0),
'red' : (ptr,0,0),
'cyan' : (0,ptr,ptr),
'yellow' : (ptr,ptr,0),
'purple' : (ptr,0,ptr),
'lightgreen' : (0,255,ptr),
'yellowred' : (255,ptr,0,),
'purpleblue' : (ptr,0,255),
'lightred' : (255,0,ptr,),
'lightblue' : (0,ptr,255),
'greenyellow' : (ptr,255,0),
'lightyellow' : (255,255,ptr),
'lightpurple' : (255,ptr,255),
'lightcyan' : (ptr,255,255),
}.get(fade_color,
color_tuple = (ptr,ptr,ptr) )
Meine Änderung (Zeile 19,20):
Teil-2 Dein Code-Fragment:
Code: Alles auswählen
try:
args, inc = {
'fade_up': #~~ Farbaufhellung von unten nach oben
((0,line_nr,
self.width,line_nr,
fill = line_color),-1),
'fade_down': #~~ Farbaufhellung von oben nach unten
((0,line_nr,
self.width,line_nr,
fill = line_color),+1),
'fade_left': #~~ Farbaufhellung von links nach rechts
((line_nr,0,
line_nr,self.height,
fill = line_color),-1),
'fade_right': #~~ Farbaufhellung von rechts nach links
((line_nr,0,
line_nr,self.height,
fill = line_color),+1),
}[fade_direction]
except KeyError:
args, inc = \
((0,line_nr,
self.width,line_nr,
fill = line_color),-1)
line_nr += inc
self.create_line(*args)
Meine Änderungen:
Code: Alles auswählen
args,fill,inc = {
'fade_up': #~~ Farbaufhellung von unten nach oben
((0,line_nr,self.width,line_nr),line_color,-1),
'fade_down': #~~ Farbaufhellung von oben nach unten
((0,line_nr,self.width,line_nr),line_color,+1),
'fade_left': #~~ Farbaufhellung von links nach rechts
((line_nr,0,line_nr,self.height),line_color,-1),
'fade_right': #~~ Farbaufhellung von rechts nach links
((line_nr,0,line_nr,self.height),line_color,+1),
}.get(fade_direction,((0,line_nr,self.width,line_nr),line_color,-1))
line_nr += inc
self.create_line(
args,
fill = line_color
)
Bei diesem Code-Fragment habe ich try: except: entfernt. Lerneffekt aus deiner letzten Änderung. Hi.
Die Canvas-Grafik-Methode w.create_line(....) muss als erstes Argument eine Liste oder Tuple mit einer geraden Anzahl von Koordinaten-Punkte erhalten, danach kommen die Optionen. Die Argument-Übergabe mit *args machte somit Probleme.
Auch folgende Tuple-Konstellation machte Probleme:
Code: Alles auswählen
((0,line_nr,
self.width,line_nr,
fill = line_color),-1),
Hier war es nach Aussage des Tracebacks folgendes Element:
fill = line_color
OK audax nochmals vielen Dank für deine Vorschläge die mich auf eine höher Ebene der Python-Programmierung katapultierten. Hi.
Ich wollte mein neues Skript auf dem Pocoo-Paste-Server deponieren dieser aber weigerte sich etwas entgegenzunehmen. Vielleicht hat er zu heiss. Ich werde dies nachholen sobald er wieder abgekühlt ist.
Beste Grüsse von wuf