Seite 1 von 1
In Canvas die Schriftgröße ändern?
Verfasst: Freitag 4. Juni 2004, 12:46
von Hopsi
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
Verfasst: Freitag 4. Juni 2004, 12:52
von Dookie
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
Verfasst: Samstag 5. Juni 2004, 20:40
von Hopsi
Danke,
kann ich das mit der Zeile so tun?
txt = my_canvas.create_text(x+4, y+35, fill="#000000", font="20")
aber irgend wie funktioniert es nicht so!
Gruß
Hopsi
Verfasst: Samstag 5. Juni 2004, 22:21
von wuf
Hallo Hopsi
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()
Mit Klicken der linken Maustaste, auf
die Canvas wird die Schrift grösser.
Gruss wuf

Verfasst: Samstag 5. Juni 2004, 22:54
von wuf
Hi Hopsi hier ist nochmals 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()
Gruss wuf

Verfasst: Samstag 5. Juni 2004, 22:56
von Dookie
hier noch die Version mit
itemcofigure
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()
Gruß
Dookie
Verfasst: Sonntag 6. Juni 2004, 06:27
von wuf
Hallo Dookie
Wie ich feststelle haben unsere Gedanken
mit 2 Minuten Unterschied wie ein RAID-1
System gearbeitet. Dies ohne jeden Hardware-
bzw. Softwareeinfluss Hi.
Gruss wuf

Verfasst: Sonntag 6. Juni 2004, 12:35
von hans
Hi Wuf,
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
Wenn ich cvtext und fontsize als Global definiere, dann geht's auch mit deinem zweiten Beispiel
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()
Hans
Verfasst: Sonntag 6. Juni 2004, 17:05
von wuf
Hi Hans
Du hast natürlich recht. Ich habe die
global-Anweisung aus dem Skript ge-
löscht ohne das Skript abzuspeichern.
Darum hatte es bei mir noch funktioniert.
Besten Dank für deinen Tipp
Gruss wuf

Schriftgröße in Python
Verfasst: Mittwoch 16. Juni 2004, 13:15
von Hopsi
Hi Leute,
Danke, ihr habt mir wirklich weiter geholfen!
Gruß
Hopsi