python - 返回光标的文本小部件

标签 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() 应该按照我想要的方式工作

附注我什至无法在运行时找到文本小部件的高度,因为我将其定义为小尺寸(高度= 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/

相关文章:

python - 进度条显示已播放的音乐量

python - 如何将 pandas 系列 2D 图堆叠成 3D 结构?

python - 如何通过 python 电报 bot 库在固定时间或间隔从 bot 向用户发送消息?

python - Python 中的内存管理

python - 如何将参数传递给 tkinter 中的事件处理程序?

python-3.x - 一旦另一个函数完成,ProgressBar 是否有可能达到 100%?

python - 尝试从点列表中找到距离屏幕中间最近的点

python - 创建一个范围内的随机整数序列,并且它们之间的距离最小

python - 如何在 Tkinter 中设置 Entry 的字体大小

python - 更改 Canvas 中像素的颜色、Tkinter、Python