Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter:如何设置默认的新文本插入焦点坐标_Python_Tkinter - Fatal编程技术网

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

Python Tkinter:如何设置默认的新文本插入焦点坐标,python,tkinter,Python,Tkinter,当将文本插入移出屏幕以使新文本(以及文本插入)出现在屏幕上时,如何使文本插入集中在指定的x,y坐标上,而不是屏幕中间?例如,当我使用pagedown时,我希望它关注屏幕底部的文本插入(而不是中间)。当我使用pageup时,我希望它关注屏幕顶部(而不是中间)的文本插入 为澄清,默认行为是在按下PoGup或PaGeDub时,插入后移动的文本插入在屏幕的中间。我希望它分别位于顶部和底部(在可能的情况下,考虑到pageup/pagedown并不总是要遍历整个页面)。有什么办法吗?我没有看到任何用于此目的

当将文本插入移出屏幕以使新文本(以及文本插入)出现在屏幕上时,如何使文本插入集中在指定的x,y坐标上,而不是屏幕中间?例如,当我使用pagedown时,我希望它关注屏幕底部的文本插入(而不是中间)。当我使用pageup时,我希望它关注屏幕顶部(而不是中间)的文本插入


为澄清,默认行为是在按下PoGup或PaGeDub时,插入后移动的文本插入在屏幕的中间。我希望它分别位于顶部和底部(在可能的情况下,考虑到pageup/pagedown并不总是要遍历整个页面)。有什么办法吗?我没有看到任何用于此目的的内置方法<代码>文本。请参阅(myIndex)允许文档中所述的无x、y坐标。

光标指示文本中的插入位置或文本“插入”标记。对于Win7、2.7.8(TK8.5.15)和3.4.2(TK8.6.1),我看到了以下行为

如果光标可见,PageUp/Down将光标和文本上下移动一页,使光标保持静止,文本在其下方移动

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


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

谢谢。我正在使用Xubuntu 14.04(Linux)。这可能是不同行为的原因。很高兴知道Windows在那里是不同的。我已经在拦截事件并返回“中断”;因此,我应该能够尝试你的建议,而不会出现执行顺序问题。然而,我认为,
Text.mark\u set…
是导致居中行为的原因。使用
Text.see
和任何索引都不会因为某种原因而移动焦点。我得处理一下,看看能不能弄清楚发生了什么,然后在这里给你回复。好的,显然,使用
文本。如果你只移动一行,标记集不会居中,但是如果移动很多行,标记集会居中。因此,通过遍历一个循环,一次执行一行,并在每次迭代中调用
Text.see(INSERT)
,它就完成了我想要的。