Python 如何禁用文本小部件的输入,但允许编程输入?
我如何锁定Python 如何禁用文本小部件的输入,但允许编程输入?,python,textbox,tkinter,python-2.7,Python,Textbox,Tkinter,Python 2.7,我如何锁定文本小部件,以便用户只能从中选择和复制文本,但我仍然能够从函数或类似功能将文本插入文本。您是否尝试过简单地禁用文本小部件 text_widget.configure(state="disabled") 在某些平台上,您还需要在上添加一个绑定,以便将焦点放在小部件上,否则不会显示复制的突出显示: text_widget.bind("<1>", lambda event: text_widget.focus_set()) text\u widget.bind(“,lambd
文本
小部件,以便用户只能从中选择和复制文本,但我仍然能够从函数或类似功能将文本插入文本
。您是否尝试过简单地禁用文本小部件
text_widget.configure(state="disabled")
在某些平台上,您还需要在
上添加一个绑定,以便将焦点放在小部件上,否则不会显示复制的突出显示:
text_widget.bind("<1>", lambda event: text_widget.focus_set())
text\u widget.bind(“,lambda事件:text\u widget.focus\u set())
如果您禁用该小部件,要以编程方式插入,只需
NORMAL
只要你不调用<代码> Update <代码>,那么用户就无法交互地输入任何东西。
< P>对不起,我迟到了,但是我发现这个页面和你一样寻找解决方案。 我发现,如果您在默认情况下“禁用”文本小部件,然后在函数开始时“正常”它,然后在函数结束时再次“禁用”它def __init__():
self.output_box = Text(fourth_frame, width=160, height=25, background="black", foreground="white")
self.output_box.configure(state="disabled")
def somefunction():
self.output_box.configure(state="normal")
(some function goes here)
self.output_box.configure(state="disable")
我也偶然发现了state=“normal”/state=“disabled”解决方案,但是您无法从中选择和复制文本。最后,我从以下位置找到了解决方案:,该解决方案允许您选择和复制文本以及跟踪超链接
import Tkinter
root = Tkinter.Tk()
readonly = Tkinter.Text(root)
readonly.bind("<Key>", lambda e: "break")
导入Tkinter
root=Tkinter.Tk()
readonly=Tkinter.Text(根)
readonly.bind(“,lambda e:“break”)
是的,我有,但根据文档,dis允许输入任何东西,即使是从函数之类的地方。@Oak:当然可以。但要以编程方式插入,只需将状态设置为“正常”,插入文本,然后将状态重置为“禁用”。我已经更新了我的答案以包含这些信息。唉,我现在觉得自己很愚蠢>>哈哈,谢谢!当我被允许接受XD时,你会得到你的分数。这个答案帮助我在向文本小部件写入标准输出时锁定了文本小部件。我不知道,但是,尽管我可以选择文本,但我似乎无法从中复制。