0

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

from Tkinter import *

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

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

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

4

2 回答 2

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)当用户输入一个数字并按下回车键时,我使用了bind方法来执行该功能。3) 函数打印数字然后清除变量。

我希望这有帮助!

于 2012-04-28T16:25:47.793 回答
0

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

如果以上都没有多大意义,请查看TkDocs站点,该站点有很多关于 Tk 的有用信息,包括如何在 Python(以及其他语言)中进行所有调用的代码示例。

于 2012-04-27T21:15:20.970 回答