Python:如何在消息框中获取输入框?

7

我刚意识到在游戏开始时没有向用户询问他们的名字。所以我尝试了这段代码:

 Label(root, text="What is you name?").grid(row=0, column=0)
 e1 = self.Entry(root)
 e1.self.grid(row = 0, column=1)

但它不起作用。

我该如何在游戏开始时弹出一个消息框,询问“欢迎来到数学泡泡堂,你叫什么名字?”然后用户输入他们的名字并按下确定。另一个消息框将弹出,显示“你好_,点击开始按钮开始。”我想保存用户的名字,以便在获胜者消息框中也可以显示他们的名字。

2个回答

12

您可以使用tkinter.simpledialog函数中的askstring方法。

from tkinter.simpledialog import askstring
from tkinter.messagebox import showinfo
name = askstring('Name', 'What is your name?')
showinfo('Hello!', 'Hi, {}'.format(name))

简单而伟大的方法!你知道如何将其适用于密码输入对话框吗? - Basj
这对我不起作用。我收到了以下错误信息:AttributeError: 'NoneType' object has no attribute 'winfo_viewable'。 - Jason
@BenLast,这对我的需求非常有效,但我有一个问题。我可以将按钮从“确定”和“取消”更改为“确认”和“取消”吗?还可以给弹出窗口设置特殊字体吗? - TRCK

1
你可以创建一个对话框作为 模态 对话框,然后在其中放置一个输入框和一些按钮来处理你的自定义对话框消息并显示它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接