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

时间:2013-12-07 22:32:40

标签: python tkinter

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

更新。我已经设法找到了部分方法。仍然想知道,是否有可能在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()

1 个答案:

答案 0 :(得分:1)

嗯,我个人不知道有任何选择这样做(任何给出一个的答案都会轻易胜过这一个)。

但是,您可以通过一些编码来密切模仿这种行为。也就是说,您可以bind将文本框添加到将为您插入/删除默认文本的函数中。

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

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

请注意:

  1. 单击顶部文本框时,默认文本将消失。

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

  3. 仅当顶部文本框中没有任何内容时才会出现此行为。