2010-07-09 43 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)