如何在tkinter中使特定文本不可编辑?

如何在tkinter中使特定文本不可编辑?

在Tkinter中,用户可以使用两种基本文本输入小部件输入文本- Text 小部件和 Entry 小部件。 Text 小部件通常用于接受多行用户输入,而在输入 Entry 小部件的情况下,用户只能输入单行文本。

您可以使用内置库函数和方法自定义这些小部件并添加其他功能。要验证 Entry 小部件中的输入,您可以使用 register() 方法。此方法返回一个字符串,可用于在后续阶段调用该函数。

要验证 Entry 小部件中的输入,使用 config(options)** 方法并传递 validatevalidatecommand 参数。

  • validate - 它表示必须在给定的Entry或Text小部件中调用回调函数以验证输入的时间。例如, “key” 是指定每当用户按键盘上的 时,回调函数都将被调用。您也可以使用其他选项,例如 focus、focusin、focusout、none、all 等等。

  • validatecommand - 它指定取决于回调函数返回的值的值。要在 validatecommand=’f’ 中指定值,您可以使用各种回调替换代码,它会告诉回调函数如何返回哪些值。

要在Entry小部件中验证输入,您必须注册回调函数并通过传递检查在回调函数中定义的条件的参数来配置Entry小部件。

示例

现在,让我们来考虑一个示例,我们要验证一个Entry小部件,使用户无法删除特定文本。此外,我们可以通过使用 startswith(“string”) 函数来使其不可编辑。

#导入必要的库
from tkinter  import *

# 创建tkinter窗口的实例
win = Tk()
win.geometry("700x350")

# 定义函数使文本不可编辑
def make_non_removable(text):
   return text.startswith("输入您的电子邮件地址:")

# 创建一个Entry小部件
entry=Entry(win, bg="black", fg="white")
entry.pack(side="top", fill="x")

# 添加默认文本
entry.insert(END,"输入您的电子邮件地址:")
validate_entry=(win.register(make_non_removable),'%P')
entry.config(validate='key',validatecommand=validate_entry)

win.mainloop()

输出

执行后,在窗口中会显示一个带有默认不可删除文本 “输入您的电子邮件地址:” 的Entry小部件。

如何在tkinter中使特定文本不可编辑?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程