12

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

我能做的最好的事情是在某个 xy 坐标处发出一个<Button-1>and<ButtonRelease-1>事件,但那是一个像素量,而不是一个字母量。

4

3 回答 3

11

如果“text”、“line”和“column”是您的文本对象,则所需的文本行和所需的列变量分别是:

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

如果您不想关心行号......好吧,您必须这样做。

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

于 2010-07-09T19:00:39.400 回答
9

要设置光标位置,您可以使用该text_widget.mark_set方法,带有"insert"(或Tkinter.INSERT“常量”)第一个参数,对于第二个参数,可以使用多种形式之一,最有用的是:

  • "%d,%d" % (line, column), 其中行从 1 开始,列从 0 开始
  • "1.0+%d chars" % index,其中 index 是从 0 开始的,就像 Python 中的字符串/unicode 索引一样

要获取标记的索引,可以使用以下text_widget.index方法:

text_widget.index(Tkinter.INSERT)
于 2010-07-09T21:11:47.677 回答
2

此属性仅适用于 Text Widget,因为对于 Entry Widget,我们可以使用:

entry_widget_name.icursor("position")

对于文本小部件将是:

text_widget_name.mark_set("insert", "%d.%d" % (x,y))

其中 x = 行位置 y = 列位置

(例如使用带点的整数,例如 1.0 或 3.0)

于 2018-03-14T16:57:26.367 回答