文本小部件返回光标

时间:2012-05-23 13:18:11

标签: python tkinter

我的问题:在我写的Tkinter编辑器中,有一种情况需要重新加载文件并在我正在编写的时候重新打开它。

我的第一次重装尝试是

pos=config.text.index(INSERT)          # memorize where I am
...                                    # do stuff
textopen_and_display(currentfn)        # reopen it
text.mark_set(INSERT,pos)          # go 
text.see(INSERT)                   # there

其中 text 是我的文本小部件。 问题是以这种方式调用的.see()方法不能做我想要的:它向下滚动就足以看到INSERT,然后停止。如果我不在第一行,文件顶部可见,它就不起作用。

我需要的是文本小部件的最后一行可见行的索引:我该如何找到它? 在这个索引上使用.see()应该按照我想要的方式工作

P.S。我甚至无法在运行时找到文本小部件高度,因为我将其定义为小尺寸(高度= 5),并使用fill = BOTH,expand = 1填充它:询问text.config()的高度它返回初始值为5

1 个答案:

答案 0 :(得分:2)

要保存滚动位置:

x_pos = text.xview()[0]
y_pos = text.yview()[0] 

恢复滚动位置:

text.xview(Tkinter.MOVETO, x_pos)
text.yview(Tkinter.MOVETO, y_pos)