Skip to main content
 首页 » 编程设计

python之如何在 Tkinter 中使用建议文本预填充文本字段

2025年05月04日8三少

我正在尝试根据最近的条目预填充一个文本字段。因为这不是一个列表框,所以我不知道该怎么做,而且我在网上也没有看到任何示例。谢谢。

更新。我设法找到了这样做的部分方法。仍然想知道,是否可以在 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() 

请您参考如下方法:

好吧,我个人不知道有什么选择可以做到这一点(任何给出的答案都会很容易胜过这个)。

但是,您可以通过一些编码来模仿这种行为。即,您可以 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. 只有当顶部文本框中没有任何内容时才会出现此行为。