Tkinter:如何设置默认的新文本插入焦点坐标

时间:2014-10-29 09:00:47

标签: python tkinter

当移动文本插入屏幕以使新文本出现在屏幕上(以及文本插入)时,如何将文本插入聚焦在指定的x,y坐标而不是中间位置屏幕?例如,当我使用pagedown时,我希望它专注于屏幕底部的文本插入(而不是中心)。当我使用页面时,我希望它专注于屏幕顶部的文本插入(而不是中心)。

为了澄清,默认行为是当按下翻页或向下翻页时,插入移动后文本插入位于屏幕中间。我希望它分别位于顶部和底部(在可能的情况下,考虑到pageup / pagedown并不总是遍历整个页面)。关于如何做到这一点的任何想法?我没有为此目的看到任何内置方法。 Text.see(myIndex)允许在文档中没有x,y坐标。

1 个答案:

答案 0 :(得分:1)

光标指示插入位置或文本'插入'在文本中标记。使用Win7,2.7.8(tk 8.5.15)和3.4.2(tk 8.6.1),我看到以下行为。

如果光标可见,PageUp / Down会同时移动光标和文本向上/向下翻页,因此光标看起来保持不动,文字在其下移动。

如果光标不可见,由于滚动,PageUP / Down移动页面并将光标('插入'标记)放在页面的左上角。 (这与您描述的不同,可能取决于系统或Python或tk版本。)

您可以尝试以下方法。拦截PageUp和PageDown键事件。假设您的代码首先获取事件,请使用scrollbar.get返回来计算顶部和底部可见行,使用text.mark_set(' insert',' lineno.0')来使光标在您想要的位置可见,并让事件传播以移动文本。