Tkinter - 我制作的按钮不起作用

时间:2015-06-28 08:45:27

标签: python tkinter

我尝试制作以下程序:打开程序时,会显示一个条目和一个标记为“9”的按钮。单击按钮“9”时,在条目末尾添加字符“9”。

下面给出的代码是我写的,但它不能按我的意图工作。按钮不起作用,条目显示'09'而不是'0'。

# -*- coding : utf-8 -*-
import Tkinter as Tk
class calculator:
   def __init__(self, master):
       self.num = Tk.StringVar()
       self.opstate = None
       self.tempvar = 0

       # entry
       self.entry = Tk.Entry(root, textvariable = self.num, justify=Tk.RIGHT, width = 27)
       self.entry.pack(side = Tk.TOP)
       self.num.set("0")

       # Buttons
       self.numbuts = Tk.Frame(master)
       self.ins9 = Tk.Button(self.numbuts, text = "9", width = 3, command = self.fins(9))
       self.ins9.pack()

       self.numbuts.pack(side = Tk.LEFT)

   ##### Functions for Buttons #####
   def fins(self, x):
       self.entry.insert(Tk.END, str(x))

root = Tk.Tk()
calc = calculator(root)
root.mainloop()

我想部分command = self.fins(9)有问题,但我不知道如何解决它。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

代码传递方法调用的返回值,而不是方法本身。

使用以下内容传递回调函数:

self.ins9 = Tk.Button(self.numbuts, text="9", width=3, command=lambda: self.fins(9))
                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^