Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.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 如何在更改项目宽度时正确显示项目中的光标?_Python_Tkinter - Fatal编程技术网

Python 如何在更改项目宽度时正确显示项目中的光标?

Python 如何在更改项目宽度时正确显示项目中的光标?,python,tkinter,Python,Tkinter,我目前正在使用python的Tkinter库开发sinclair basic解释器的GUI。我正在使用inpuntry.configure(insertwidth=7)调整闪烁光标的宽度 目前,它的工作或多或少很好,但我希望我的光标稍微宽一点,就像在linux终端中一样。问题是,当我将insertwidth设置为10或15时,它开始与附近的字符重叠。下面的代码绘制了一个条目,以便您可以直接看到错误: from Tkinter import * root = Tk() inputentry =

我目前正在使用python的Tkinter库开发sinclair basic解释器的GUI。我正在使用
inpuntry.configure(insertwidth=7)
调整闪烁光标的宽度

目前,它的工作或多或少很好,但我希望我的光标稍微宽一点,就像在linux终端中一样。问题是,当我将insertwidth设置为10或15时,它开始与附近的字符重叠。下面的代码绘制了一个条目,以便您可以直接看到错误:

from Tkinter import *

root = Tk()

inputentry = Entry(root)
inputentry.configure(insertwidth = 15)
inputentry.pack()

root.mainloop()

有人面临过这样的问题吗?如何在Tkinter库的图形(非控制台)界面中实现类似linux的光标行为?对于
Tkinter.Entry()
小部件,您试图实现的行为是不可行的

修改光标位置的合适方法是使用将插入光标设置在给定索引的字符前面的方法。因此,在使用时:

inputentry.configure(insertwidth = "10")
尝试运行这样的操作是没有用的:

inputentry.icursor(inputentry.index(END)+5) #insertwidth/2 = 5

因为我们不能将光标推得比
tk.END
更远或比0更近。

对于
Tkinter.Entry()
小部件,您试图实现的行为是不可行的

修改光标位置的合适方法是使用将插入光标设置在给定索引的字符前面的方法。因此,在使用时:

inputentry.configure(insertwidth = "10")
尝试运行这样的操作是没有用的:

inputentry.icursor(inputentry.index(END)+5) #insertwidth/2 = 5

因为我们不能将光标推得比tk.END更远或比0更近。

为了这个问题,您可以删除问题中的绝大多数代码。我们真正需要的只是入门小部件和足够的代码来让它工作。谢谢你,布莱恩,我已经根据你的指示修改了代码。这是我关于堆栈溢出的第一个问题,因此我为大量不必要的代码感到抱歉)切换到一行
Text
widget,因为它有一个用于此类行为的窗口。这是一个多么奇妙的解决方案!非常感谢,常识。它工作完美,这正是我所期待的行为!对于这个问题,您可以删除问题中的绝大多数代码。我们真正需要的只是入门小部件和足够的代码来让它工作。谢谢你,布莱恩,我已经根据你的指示修改了代码。这是我关于堆栈溢出的第一个问题,因此我为大量不必要的代码感到抱歉)切换到一行
Text
widget,因为它有一个用于此类行为的窗口。这是一个多么奇妙的解决方案!非常感谢,常识。它工作完美,这正是我所期待的行为!谢谢你的回答,比拉尔,我已经意识到你几个小时前刚刚解释的内容。我最终跟随@CommonSense adwise切换到一行文本小部件,因为它有这样的行为选项,因为这正是我期望得到的结果。谢谢你的回答,Billal,我已经意识到你几小时前刚刚解释的内容。我最终跟随@CommonSense adwise切换到单行文本小部件,因为它有一个这样的行为选项,因为这正是我所期望的结果