我的问题:在我正在编写的 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() 应该按照我想要的方式工作
附注我什至无法在运行时找到文本小部件的高度,因为我将其定义为小尺寸(高度= 5),并用 fill=BOTH、expand=1 对其进行了打包:询问 text.config() 的高度,它返回初始值为 5
最佳答案
保存滚动位置:
x_pos = text.xview()[0]
y_pos = text.yview()[0]
恢复滚动位置:
text.xview(Tkinter.MOVETO, x_pos)
text.yview(Tkinter.MOVETO, y_pos)
关于python - 返回光标的文本小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10720782/