所以我使用tkinter python,我有一个带有Name文本的条目小部件。我想仅在单击小部件时删除文本。这就是我到目前为止所做的:
#Import tkinter to make gui
from tkinter import *
from tkinter import ttk#Sets title and creates gui
root = Tk()
root.title("Identity Form")
#Configures column and row settings and sets padding
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
name=StringVar()
age=StringVar()
gender=StringVar()
#Widgets to put in items, quanitity, and shipping days
name_entry = ttk.Entry(mainframe, width=20, textvariable=name)
name_entry.grid(column=2, row=2, sticky=(W, E))
age_entry2 = ttk.Entry(mainframe, width=20, textvariable=age)
age_entry2.grid(column=2, row=3, sticky=(W, E))
male = ttk.Radiobutton(mainframe, text='Male', variable=gender, value='male')
female = ttk.Radiobutton(mainframe, text='Female', variable=gender, value='female')
other = ttk.Radiobutton(mainframe, text='Other', variable=gender, value='other')
name_entry.insert(0,'Name')
这将创建条目小部件,并具有文本" Name"在里面。当点击我希望文本消失时。
答案 0 :(得分:0)
def reset(*args):
name_entry.delete(0, END)
name_entry.bind("<Button-1>", reset)
看起来解决方案很简单,我找到了它的一个变体,但我不知道有必要使用* args或者它不会起作用。
答案 1 :(得分:0)
您可以通过绑定将name
变量的值设置为空字符串的方法来实现。
def reset(event):
name.set("")
name_entry.bind("<Button-1>", reset)
如果只想删除name_entry
中的文本,则可以添加一个if条件,仅在name
的值等于原始值时设置名称。
def reset(event):
if name.get() == initial_text:
name.set("")
我希望我的回答会有所帮助。