Is it possible to set the cursor position in a Tkinter Text widget? I'm not finding anything terribly useful yet.
The best I've been able to do is emit a <Button-1>
and <ButtonRelease-1>
event at a certain xy coordinate, but that is a pixel amount, not a letter amount.
If "text", "line", and "column" are your text object, the desired text line and desired column variables are, respectively:
text.mark_set("insert", "%d.%d" % (line + 1, column + 1))
If you would not like to care about the line number... well, you have to.
Complete documentation at: http://effbot.org/tkinterbook/text.htm
To set the cursor position, you can use the text_widget.mark_set
method, with "insert"
(or Tkinter.INSERT
for a “constant”) first argument and, for the second argument, one of many forms, the most useful being:
"%d,%d" % (line, column)
, where line is 1-based and column is 0-based "1.0+%d chars" % index
, where index is 0-based just like a string/unicode index in Python To get the index of a mark, you can use the text_widget.index
method:
text_widget.index(Tkinter.INSERT)
This property is just for Text Widget, because for Entry Widget we could use:
entry_widget_name.icursor("position")
For Text Widget will be:
text_widget_name.mark_set("insert", "%d.%d" % (x,y))
where x = row position y = column position
(using integer numbers with dots like 1.0 or 3.0 for example)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.