2010-07-09 39 views
6

是否可以在Tkinter Text小部件中设置光标位置?我没有发现任何非常有用的东西。在Text小部件中设置光标位置

我已经能够做的最好的事情是在某个x-y坐标处发出<Button-1><ButtonRelease-1>事件,但这是一个像素量,而不是字母量。

回答

7

如果“文”,“行”,“列”是你的文本对象,所需的文本行和所需的列变量:

text.mark_set("insert", "%d.%d" % (line + 1, column + 1) 

如果你不喜欢计较行号...好吧,你必须。

完整文档: http://effbot.org/tkinterbook/text.htm

+0

完美!我认为这可能在某些方面,但我无法弄清楚。有没有一种获取当前光标位置的相关方法? – 2010-07-09 19:35:47

+3

@Wayne Werner:“index”方法将返回任何位置的索引,包括插入光标:'text.index(“insert”)' – 2010-07-09 23:12:51

6

要设置光标位置,则可以使用text_widget.mark_set方法,用"insert"(或Tkinter.INSERT对于“恒定”)的第一个参数,并且对于第二个参数,多个中的一个的形式中,最有用的存在:

  • "%d,%d" % (line, column),其中线1为基础的和列是基于0
  • "1.0+%d chars" % index,其中,索引只是基于0的如同在Python

字符串/ Unicode的指数要得到标记的指数,你可以使用text_widget.index方法:

text_widget.index(Tkinter.INSERT)