kre*_*ter 3 tkinter python-3.x
我有一个关于 Tkinter Text 和 Entry 小部件的快速问题。如何使特定文本不可删除?是的,我知道.config(state="disabled"),不,这不是我想要的,它只会使所有文本不可移动。
假设我有一个文本框。在该文本框中有一个“输入消息”文本。用户可以像任何其他文本框一样键入和删除。但是,我不希望用户删除“输入消息”。
就像在 Windows shell 中一样,您无法删除“C:\Users\your username>”或您所在的任何目录。
这是一些代码:
from tkinter import *
root = Tk()
root.geometry("500x500")
entry = Entry(root, bg="black", fg="white")
entry.pack(side="top", fill="x")
entry.insert(END, "Enter message: ")
entry.non_removable("Enter message: ") # << not a real code. just what i imagine it to be
mainloop()
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用验证。
def do_validate( text ):
# if this returns False the entered key(s) aren't accepted.
return text.startswith( "Enter message: " )
import tkinter as tk
root = tk.Tk()
root.geometry("500x500")
entry = tk.Entry(root, bg="black", fg="white")
entry.pack(side="top", fill="x")
entry.insert( tk.END, "Enter message: ")
validate_cmd = ( root.register( do_validate ), '%P' )
entry.config( validate = 'key', validatecommand = validate_cmd )
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
如果击键创建的字符串不是以“Enter Message:”开头,则击键将被拒绝,条目文本保持不变。
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |