Hi Leute,
Kann ich beim, vom Canvas geschriebenen Text die Größe verändern?
Ich habe die GUI Version = Tk Version 8.4
Gruß
Hopsi
In Canvas die Schriftgröße ändern?
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi Hopsi,
sollte mit der Methode canvas.itemconfigure(item, options...) gehen, item ist dabei die ID die du von canvas.create_text(...) bekommen hast. Bei options kannst Du einen neuen Font in der entsprechenden Grösse angeben.
Gruß
Dookie
sollte mit der Methode canvas.itemconfigure(item, options...) gehen, item ist dabei die ID die du von canvas.create_text(...) bekommen hast. Bei options kannst Du einen neuen Font in der entsprechenden Grösse angeben.
Gruß
Dookie
Hallo Hopsi
Hier ist etwas Code zum ausprobieren.
Mit Klicken der linken Maustaste, auf
die Canvas wird die Schrift grösser.
Gruss wuf
Hier ist etwas Code zum ausprobieren.
Code: Alles auswählen
from Tkinter import*
def ChangeFontSize(event):
global cvtext,fontsize
canvas.delete(cvtext)
cvtext = canvas.create_text(20,
20,
text="Size",
font=("Courier", fontsize,"bold"),
fill="blue",
anchor="nw")
fontsize += 2
root = Tk()
fontsize = 10
cvtext = None
canvas = Canvas(root,width=300,height=200,bd=5,relief='raised',bg='yellow')
canvas.pack()
canvas.bind('<Button-1>', ChangeFontSize)
ChangeFontSize(None)
root.mainloop()
die Canvas wird die Schrift grösser.
Gruss wuf

Take it easy Mates!
Hi Hopsi hier ist nochmals wuf!
Hier habe ich noch eine bessere Variante:
Gruss wuf 
Hier habe ich noch eine bessere Variante:
Code: Alles auswählen
from Tkinter import*
def ChangeFontSize(event):
canvas.itemconfigure(cvtext,font=("Courier",fontsize,"bold"))
fontsize += 2
root = Tk()
fontsize = 10
cvtext = None
canvas = Canvas(root,width=300,height=200,bd=5,relief='raised',bg='yellow')
canvas.pack()
canvas.bind('<Button-1>', ChangeFontSize)
cvtext = canvas.create_text(20,
20,
text="Size",
font=("Courier",fontsize,"bold"),
fill="blue",
anchor="nw")
root.mainloop()

Take it easy Mates!
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
hier noch die Version mit itemcofigure
Gruß
Dookie
Code: Alles auswählen
from Tkinter import*
def ChangeFontSize(event):
global canvas,cvtext,fontsize
fontsize += 2
canvas.itemconfigure(cvtext, font=("Courier", fontsize,"bold"))
root = Tk()
fontsize = 10
cvtext = None
canvas = Canvas(root,width=300,height=200,bd=5,relief='raised',bg='yellow')
canvas.pack()
canvas.bind('<Button-1>', ChangeFontSize)
cvtext = canvas.create_text(20,
20,
text="Size",
font=("Courier", fontsize,"bold"),
fill="blue",
anchor="nw")
root.mainloop()
Dookie
-
- User
- Beiträge: 728
- Registriert: Sonntag 22. September 2002, 08:32
- Wohnort: Sauerland
- Kontaktdaten:
Hi Wuf,
das erste Beispiel was du gepostet hast, geht auch unter Linux. Beispiel zwei bringt beim Anklicken eine Fehlermeldung
Wenn ich cvtext und fontsize als Global definiere, dann geht's auch mit deinem zweiten Beispiel
Hans
das erste Beispiel was du gepostet hast, geht auch unter Linux. Beispiel zwei bringt beim Anklicken eine Fehlermeldung
Code: Alles auswählen
Exception in Tkinter callback
Traceback (most recent call last):
File "/var/tmp/python2.3-2.3.3-root/usr/lib/python2.3/lib-tk/Tkinter.py", line 1345, in __call__
return self.func(*args)
File "./xy.py", line 7, in ChangeFontSize
canvas.itemconfigure(cvtext,font=("Courier",fontsize,"bold"))
UnboundLocalError: local variable 'fontsize' referenced before assignment
Code: Alles auswählen
#!/usr/bin/env python
from Tkinter import*
def ChangeFontSize(event):
global cvtext, fontsize
canvas.itemconfigure(cvtext,font=("Courier",fontsize,"bold"))
fontsize += 2
root = Tk()
fontsize = 10
cvtext = None
canvas = Canvas(root,width=300,height=200,bd=5,relief='raised',bg='yellow')
canvas.pack()
canvas.bind('<Button-1>', ChangeFontSize)
cvtext = canvas.create_text(20,
20,
text="Size",
font=("Courier",fontsize,"bold"),
fill="blue",
anchor="nw")
root.mainloop()