Tkinterを使用してPython2.7.3でグラフ電卓を作成しています。ユーザーが「b」ボタンを押すと、コンソールに「b」が出力されるように設定しました。これを行うには、「key」という変数が渡される関数を作成し、それをラベルに追加します。ただし、プログラムを最初に起動すると、関数が自動的に呼び出され、コンソールに「b」が出力されます。ボタンをクリックしても何も起こりません。これが私のコードです:
from Tkinter import *
class Application(Frame):
def addkey(self,key):
print str(key)
def removekey(self):
if len(self.displaytext) > 0:
self.displaytext = self.displaytext[0:-1]
def createWidgets(self):
self.maxlength = 20
self.displaytext = ""
self.frame1 = Frame(self)
self.display = Label(self.frame1,textvariable=self.displaytext,width=self.maxlength+3,bg="black",fg="white",height=2)
self.frame1.pack()
self.display.pack()
self.frame2 = Frame(self)
self.bksp = Button(self.frame2,text="b",width=4,height=2,command=self.addkey("b"))
self.frame2.pack()
self.bksp.pack()
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
app = Application()
app.mainloop()
try:
root.destroy()
except:
pass