按下 Enter 键后进行 Tkinter 输入

问题描述 投票:0回答:1

我是 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)

python tkinter
1个回答
0
投票

您可以通过像这样的最小设置来完成此操作(请注意,我已经删除了一些样式以使事情变得更简单)

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()
© www.soinside.com 2019 - 2024. All rights reserved.