Python 3.x 如何使特定文本在tkinter中不可移动?

Python 3.x 如何使特定文本在tkinter中不可移动?,python-3.x,tkinter,Python 3.x,Tkinter,我有一个关于Tkinter文本和条目小部件的快速问题。 如何使特定文本不可移动? 是的,我知道.config(state=“disabled”)不,这不是我想要的,它只是使所有文本都不可移动 假设我有一个文本框。在那个文本框中有一个“输入消息”文本。 用户可以像任何其他文本框一样键入和删除。但是,我不希望用户删除“输入消息” 就像在Windows shell中一样,不能删除“C:\Users\your username>” 或者你所在的目录 下面是一些代码: from tkinter impor

我有一个关于Tkinter文本和条目小部件的快速问题。 如何使特定文本不可移动? 是的,我知道
.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()
从tkinter导入*
root=Tk()
根几何(“500x500”)
条目=条目(根,bg=“黑色”,fg=“白色”)
入口包装(侧边=“顶部”,填充=“x”)
entry.insert(结束,“输入消息:”)

entry.non_removable(“Enter message:)#最简单的方法是禁用退格,当文本与您的文本匹配时绑定并返回“break”,当文本与您的文本不匹配时取消绑定

试试这个:

从tkinter导入*
def检查(*参数):

如果entry.index(INSERT)另一种方法是使用validate

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()

如果击键创建的字符串不是以“Enter Message:”开头,则击键将被拒绝,输入文本将保持不变。

这是否回答了您的问题@Atlas435:这是用于文本小部件的。这个问题是关于入口小部件的。这两个小部件的功能非常不同。@BryanOakley关于Tkinter文本和条目小部件。这是OP的问题。我认为,使用您提供的代码,只需稍作调整,就可以创建一个costum条目。@Atlas435:好的。是的,开头一段提到了一个
文本
小部件,但代码没有创建一个。谢谢你指出这一点。