2013-02-04 48 views
1

现在我试图通过简单地打印它保存的值来测试我的入口小部件,但.get()似乎不工作。我忽略了什么?当我按下“Enter”按钮时,为什么我不能获得self.entry的值?

from tkinter import * 

class Game(Frame): 
    'Number guessing application' 
    def __init__(self,parent=None): 
     'constructor' 
     Frame.__init__(self, parent) 
     self.pack() 
     Game.make_widgets(self) 
     Game.new_game(self) 
     self.number = random.randrange(1,100) 
     self.pack() 

    def make_widgets(self): 
     self.entry = Entry(self, width = 25, bg = 'purple',fg= 'green') 
     self.entry.pack() 
     self.button = Button(self,text = 'Enter',relief = 'ridge',command = self.reply()) 
     self.button.pack() 
    def new_game(self): 
     pass 

    def reply(self): 
     print(self.entry.get()) 

Game().mainloop() 
+0

除了你的代码无法导入'随机'的事实,它工作正常。你确定这段代码给你错误吗? –

+0

@BryanOakley:对不起,我的坏。在纠正缩进问题时,我也解决了这个问题。 – Tim

回答

1

你有command = self.reply(),这就要求self.reply()和使用的返回值(在这种情况下,一个隐含的None),作为动作。

将其更改为command = self.reply,这会使其每次调用reply方法。

+0

哦,好的,谢谢 – user2038409

相关问题