Python 如何用Tkinter中的建议文本预填充文本字段?

Python 如何用Tkinter中的建议文本预填充文本字段?,python,tkinter,Python,Tkinter,我正在尝试根据最近的条目预填充文本字段。由于这不是一个列表框,我不知道如何做,我也没有在网上看到任何例子。谢谢 更新。我设法找到了一个部分的方法来做这件事。仍然想知道,是否有可能在Tkinter中提供建议文本,当单击文本框时,该文本会消失 from Tkinter import * app = Tk() app.title("GUI Example") app.geometry('560x460+200+200') x = Text(app) x.insert(END, "Before")

我正在尝试根据最近的条目预填充文本字段。由于这不是一个列表框,我不知道如何做,我也没有在网上看到任何例子。谢谢

更新。我设法找到了一个部分的方法来做这件事。仍然想知道,是否有可能在Tkinter中提供建议文本,当单击文本框时,该文本会消失

from Tkinter import *

app = Tk()
app.title("GUI Example")
app.geometry('560x460+200+200')

x = Text(app)
x.insert(END, "Before")
x.pack()

def replace():
    x.delete(1.0, END)
    x.insert(END, "After")

abutton = Button(app, text="Click me", command=replace)
abutton.pack()

app.mainloop()

嗯,我个人不知道有什么办法可以做到这一点(任何答案都很容易胜过这个)

但是,您可以通过少量编码来模拟这种行为。也就是说,您可以将文本框添加到一个函数中,该函数将为您插入/删除默认文本

下面是一个简单的脚本来演示:

import Tkinter as tk

tk.Tk()

textbox = tk.Text(height=10, width=10)
textbox.insert(tk.END, "Default")
textbox.pack()

# This is for demonstration purposes
tk.Text(height=10, width=10).pack()

def default(event):
    current = textbox.get("1.0", tk.END)
    if current == "Default\n":
        textbox.delete("1.0", tk.END)
    elif current == "\n":
        textbox.insert("1.0", "Default")

textbox.bind("<FocusIn>", default)
textbox.bind("<FocusOut>", default)

tk.mainloop()
将Tkinter作为tk导入
tk.tk()
textbox=tk.Text(高度=10,宽度=10)
textbox.insert(tk.END,“默认值”)
textbox.pack()
#这是为了演示
tk.Text(高度=10,宽度=10).pack()
def默认值(事件):
当前=textbox.get(“1.0”,tk.END)
如果当前==“默认值\n”:
textbox.delete(“1.0”,tk.END)
elif当前==“\n”:
文本框。插入(“1.0”,“默认值”)
textbox.bind(“,默认值)
textbox.bind(“,默认值)
tk.mainloop()
注意:

  • 单击顶部文本框时,默认文本将消失

  • 单击底部文本框时,顶部文本框失去焦点,默认文本重新出现

  • 只有在顶部文本框中没有任何内容时,才会发生此行为


  • 你是指条目还是文本小部件?您尝试过什么(
    .insert
    方法,
    textvariable
    )?什么失败了?请提供一个演示问题的示例。抱歉,刚刚更新。谢谢