sicher gibt es hier schon tausende threads in welchen sich die idle oder was anderes aufhängt... aber da ich nichts gefunden hab, was mir dabei hilft:
wenn ich die zeile, in welcher der tag "TEXT" geändert wird, kommentiere, läufts flüssiger als wasser - wenn nicht, dann brauche ich nur mit der maus von einer kreishälfte in die andere gehen wollen und schon geht absolut nix mehr
mein code:
Code: Alles auswählen
from Tkinter import *
root = Tk()
cv = Canvas(root)
x1 = y1 = 20
x2 = y2 = 200
def _poschange(x):
"nimmt aenderung an sich vor"
st, ext, st2, ext2 = 0 - x, 180 + 2 * x, 180 + x, 180 - 2 * x
cv.itemconfigure("eventbutton", start = st, extent = ext)
cv.itemconfigure("terminbutton", start = st2, extent = ext2)
def _evbutton(event):
"vergroessert den orangenen halbkreis und verkleinert den blauen"
_poschange( x = 20 ) # zwanzig grad mehr
cv.itemconfigure("TEXT", text = "Event", fill = "white")
def _terbutton(event):
"vergroessert den blauen halbkreis und verkleinert den orangenen"
_poschange( x = -20 )# zwanzig grad weniger
cv.itemconfigure("TEXT", text = "Termin", fill = "black")
def _norm(event):
"stellt wieder zwei 'normale' halbkreise her"
_poschange( x = 0 ) # trennlinie = durchmesser
cv.itemconfigure("TEXT", text = "")
ko = cv.create_arc(x1,y1,x2,y2,start=0,
extent=180,outline="darkblue"
,fill="darkblue",style="chord",
tag="eventbutton")
ku = cv.create_arc(x1,y1,x2,y2,start=180,
extent=180,outline="orange",
fill="orange",style="chord",
tag="terminbutton")
la = cv.create_text( (x2-x1)/2+x1, (y2-y1)/2+y1, text = "", tag = "TEXT",
font = ("Arial", 20, "bold") )
cv.tag_bind("eventbutton","<Enter>",_evbutton)
cv.tag_bind("terminbutton","<Enter>",_terbutton)
cv.tag_bind("eventbutton","<Leave>",_norm)
cv.tag_bind("terminbutton","<Leave>",_norm)
cv.pack()
root.mainloop()
grundprinzip:
die buttons sollten sich xp-theme- / flash-like verändern (vergrößern oder aufhellen)
dabei sollte dann gleich noch angezeigt werden, was der button an sich macht (TEXT)
danach sollte beim draufklicken eine funktion ähnlich eines buttons aufgeführt werden!
( --> alles mit .create_arc(...) )
liebe grüße und vielen dank im voraus
hannes