Cursor in Text-Widget positionieren

Fragen zu Tkinter.
Antworten
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Ich möchte den Cursor an eine bestimmte Stelle innerhalb eines Textes in einem Text-Widget setzen. Die Stelle kann ich mittels Indizes definieren, kann dort z.B. weiteren Text einfügen, finde aber keine Möglichkeit, den Cursor auch an diese Stelle zu setzen, so dass der Anwender dann an dieser Stelle Text einfügen kann (ohne den Cursor vorher selbst an diese Stelle setzen zu müssen).

Selbst wenn man mittels .insert() dort ein Zeichen einfügt, bleibt der Cursor, wo er war.

Ich bin die Doku nun mehrfach gründlich durchgegangen (Referenzen von Shipman und Lundh), finde aber keinen Hinweis auf die Cursorpositionierung.

Bei den vielfältigen Möglichkeiten, die das Text-Widget sonst noch bietet (Marks, Tags usw.) kann ich mir aber nicht vorstellen, dass das nicht geht.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Code: Alles auswählen

import Tkinter as tk
root = tk.Tk()
text = tk.Text(root)
text.pack()
text.insert('end', 'Hallo\nHallo')
print text.index('insert')
text.mark_set('insert', '1.3')
print text.index('insert')
text.focus_set()
root.mainloop()
MfG
HWK
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Danke HWK, genau das war's.

Dank deines Codes habe ich jetzt auch verstanden, was ich vorher nicht verstanden hatte:
Die Bedeutung der besonderen Marke "insert" war mir nicht bewusst; hatte ich zwar gelesen, aber nicht in dieser Weise verstanden.
Antworten