Text nach ``insert`` - Methode im Canvas nicht sichtbar

Fragen zu Tkinter.
Antworten
sedi
User
Beiträge: 104
Registriert: Sonntag 9. Dezember 2007, 19:22

Hallo zusammen,

mal wieder Unklarheiten zu Tkinter meinerseits :(

Zum ersten zur ``insert`` - Methode: Die macht bei mir nicht das was ich erwartet habe. Ich dachte, dass sie Text in ein Objekt des Canvas schreibt. Hier mal mein *Versuchs* - Code:

Code: Alles auswählen

root = tk.Tk()
root.title('Zelltext')

w = 600
h = 400

cv = tk.Canvas(root,
    width=w//2, height=h//2,
    bg="white", bd=2,
    relief=tk.SUNKEN)

cv.x = 5
cv.y = 5
cv.cell = cv.create_rectangle(cv.x, cv.y, w//5, h//5)
cv.insert(cv.cell, tk.END, "Das ist ein Text!")
cv.pack()

def _move_(*eventargs):
    cv.x += 10; cv.y += 5
    cv.move(cv.cell, cv.x, cv.y)
    cv.update()

cv.bind("<Button-1>", _move_)
root.mainloop()
Wie man sieht - kein Text im Rechteck :( - Warum nicht?

Das bringt mich gleich zu Frage 2: Was ist eigentlich der Unterschied zwischen der ``create_text`` - Methode eines Canvas und der ``insert`` - Methode?

Danke schon mal
CU sedi
----------------------------------------------------------
Python 3.5; Python 3.6
LinuxMint18
BlackJack

@sedi: `create_text()` erzeugt ein Textobjekt. `insert_text()` fügt Text in ein *bearbeitbares* Objekt ein in das man Text einfügen kann. Das ist ein Rechteck nicht. Ein `Entry` oder `Text` wäre das zum Beispiel.
Antworten