在文本游戏中运行Tkinter?

时间:2012-04-27 19:58:30

标签: python user-interface tkinter

如何从IDLE命令行的文本输入中更新图形?如果我有类似的东西:

from Tkinter import *

root = Tk()
can = Canvas(root, height=500, width=100)
can.pack()
mainloop()

x = input("what is a number? ")
print x

将出现窗口,但命令行上的提示不会出现。关于我如何允许的任何想法?

2 个答案:

答案 0 :(得分:0)

如果它只是用于调试或一次性配置/输入,您可以将它作为命令行参数传递给您的程序,或者将提示代码放在mainloop()调用之前的任何位置。另一方面,如果它是游戏的持续输入,你应该在你的主表单上添加一个文本输入字段和一个按钮,这样用户就可以输入数据并按下按钮来指示它们何时完成输入并拥有一个事件处理程序绑定到按钮处理输入字段的内容。

如果上述内容都没有多大意义,请查看有关Tk的大量有用信息的网站TkDocs,包括如何使用Python(以及其他语言)进行所有调用的代码示例。

答案 1 :(得分:0)

我建议只使用tkinter的小部件。

import Tkinter as tk

def numEntered(*args):
    print x.get()
    x.set('')
    return

root = tk.Tk()
can = tk.Canvas(root, height=500, width=100)
can.pack()

inputFrame=tk.LabelFrame(root, text="What is a number?")
inputFrame.pack()

x=tk.StringVar()
inputEntry=tk.Entry(inputFrame,textvariable=x)
inputEntry.pack()

inputEntry.bind('<Return>',numEntered)

tk.mainloop()

注意几个项目: 1)我将文本条目放在标签框架中,这有助于您在使用包几何管理器时。 2)当用户输入一个数字并点击enter(return)键时,我使用bind方法执行该函数。 3)该函数打印数字,然后清除变量。

我希望这有帮助!