如何在处于“只读”状态的 Entry 小部件中插入字符串?
Posted
技术标签:
【中文标题】如何在处于“只读”状态的 Entry 小部件中插入字符串?【英文标题】:How can I insert a string in a Entry widget that is in the "readonly" state? 【发布时间】:2013-01-28 15:02:27 【问题描述】:我正在尝试获取以省略号 ...
开头的条目。
这是我尝试过的代码:
e = Entry(rootWin, width=60, state="readonly")
e.insert(0, "...")
我认为发生错误是因为我试图在对象被分类为只读之后插入文本。
如何在处于"readonly"
状态的 Tkinter Entry 小部件中插入字符串?
【问题讨论】:
可能重复***.com/questions/3842155 我需要使用 Entry 对象,而不是 Text 对象,因为 text 对象没有只读状态。 【参考方案1】:这似乎对我有用:
import Tkinter as tk
r = tk.Tk()
e = tk.Entry(r,width=60)
e.insert(0,'...')
e.configure(state='readonly')
e.grid(row=0,column=0)
r.mainloop()
【讨论】:
【参考方案2】:使用条目的-textvariable
选项:
eText = StringVar()
e = Entry(rootWin, width=60, state="readonly",textvariable=eText)
....
eText.set("...I'm not inserted, I've just appeared out of nothing.")
【讨论】:
【参考方案3】:解决方法很简单:暂时将状态设置为正常,插入文字,然后设置为禁用。
【讨论】:
丑陋,但确实如此。我尝试在禁用或只读状态下设置文本。两者都不可能。它必须处于正常状态。 Anton 的回答消除了这种来回切换的麻烦,但在您需要某种代理的意义上创造了另一个麻烦。以上是关于如何在处于“只读”状态的 Entry 小部件中插入字符串?的主要内容,如果未能解决你的问题,请参考以下文章
Python tkinter Entry 小部件状态通过单选按钮切换
在 Tkinter 中按下按钮后如何清除 Entry 小部件?