我是 tkinter 的新手,因为我通常使用 C 语言工作。我在 tkinter 中编写了一个简单的代码,我想在这个片段中按下 Enter 键后将输入存储在变量名称中,并且输入框消失(可能使用 destroy.())。
import tkinter as tk
from tkinter import *
root = tk.Tk()
root.title = 'Shit game v1.0'
root.geometry('600x400+50+50')
label = tk.Label(text = "Name?: " ,foreground = "green", background = "black")
entry = tk.Entry(root, fg="green", bg="black", width=50)
label.pack()
entry.pack()
#name = entry.get()
# place a label on the root window
message = tk.Label(root, text=
"What is your name?",
foreground = "green",
background = "black",
width = 1000,
height = 1000)
message.pack()
if entry == True:
name = entry.get()
message2 = tk.Label(root, text=
f"Welcome {name}! Let's begin!",
foreground = "green",
background = "black",
width = 1000,
height = 1000)
message2.pack()
root.mainloop()
我尝试过:
def get_name(event):
name = entry.get()
if entry == True:
name = entry.get()
message2 = tk.Label(root, text=
f"Welcome {name}! Let's begin!",
foreground = "green",
background = "black",
width = 1000,
height = 1000)
message2.pack()
entry.bind('<Return>', get_name)
您可以通过像这样的最小设置来完成此操作(请注意,我已经删除了一些样式以使事情变得更简单)
import tkinter as tk
root = tk.Tk()
root.title = 'Shit game v1.0'
root.geometry('600x400+50+50')
msg_label = tk.Label(root, text='What is your name?') # create a label
msg_label.pack() # add the label to the UI
name_entry = tk.Entry(root) # create an Entry to accept user input
name_entry.bind( # bind the enter key shortcut
'<Return>',
lambda _: [ # you can call a sequence of functions w/ a lambda like this...
# update the label's text
msg_label.config(text=f"Welcome {name_entry.get()}, let's begin!"),
# remove the Entry widget
name_entry.pack_forget()
]
)
name_entry.pack() # add the Entry to the UI
root.mainloop()