如何在 tkinter 的输入框中禁用用户输入?

How can I disable the user input in a entry box, in tkinter?

我正在开发一个随机密码生成器应用程序,我在其中使用输入框来显示随机生成的密码产生。我只想插入密码,但禁用输入框中用户类型的能力,但用户可以 select 并复制输入框的内容。 请帮我解决这个问题..

这不是我在我的应用程序中使用的确切代码,但概念是相同的。我发布此代码以供参考。现在我想禁用用户在 entry1 输入框内输入的能力,但我仍然想在 entry1 输入框内传递随机生成的密码。

from tkinter import *
import random
import string
import pyperclip

root = Tk()
# BackEnd

def copy_to_clipbrd():
    pyperclip.copy(entry1.get())

def password():
    random_password = random.sample(string.ascii_letters, 15)
    entry1.delete(0, END)
    entry1.insert(0, random_password)


# FrontEnd
entry1 = Entry(root,width = 40, borderwidth = 20 )
entry1.place(x = 50, y = 35)
btn1 = Button(root, text = "Generate", command = password)
btn1.place(x = 70, y = 45)
btn2 = Button(root, text = "Copy", command = copy_to_clipbrd)
btn2.place(x = 85, y = 45)
root.mainloop()

您必须先启用条目小部件,然后再将数据插入条目 entry1.config(state="normal") 之后,您 disable 这样做 entry1.config(state="disable") 这样您就无法输入entry

完整代码

from tkinter import *
import random
import string
import pyperclip

root = Tk()
# BackEnd

def copy_to_clipbrd():
    pyperclip.copy(entry1.get())

def password():
    entry1.config(state="normal")
    random_password = random.sample(string.ascii_letters, 15)
    entry1.delete(0, END)
    entry1.insert(0, random_password)
    entry1.config(state="disable")


# FrontEnd
entry1 = Entry(root,width = 40, borderwidth = 20 )
entry1.place(x = 50, y = 35)
btn1 = Button(root, text = "Generate", command = password)
btn1.place(x = 70, y = 85)
btn2 = Button(root, text = "Copy", command = copy_to_clipbrd)
btn2.place(x = 145, y = 85)
root.mainloop()