Set cursor position in a Text widget

前端 未结 3 1940
独厮守ぢ
独厮守ぢ 2020-12-31 16:28

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 <

相关标签:
3条回答
  • 2020-12-31 16:52

    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)

    0 讨论(0)
  • 2020-12-31 16:53

    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

    0 讨论(0)
  • 2020-12-31 17:16

    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)
    
    0 讨论(0)
提交回复
热议问题