0

だから私は基本的に画面上にスケール/スライドバーを作る簡単なプログラムをやっています。アプリケーションを実行すると、スケールが表示されて機能しますが、値がコンソール (ターミナル) に出力されません。代わりにエラーメッセージを出力します

import Tkinter
class App:
    def __init__(self,parent):
        self.scale = Tkinter.Scale(parent,from_ = 0, to = 100, command = self.getVal)
        self.scale.pack()
    def getVal(self):
        amount = self.scale.get()
        print str(amount)
root = Tkinter.Tk()

app = App(root)
root.mainloop()

これはエラーメッセージです:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/Tkinter.py", line 1403, in __call__
    return self.func(*args)
TypeError: getVal() takes exactly 1 argument (2 given)

私はTkinterでかなり新しいので、少し迷っています。

編集: Python 2.5 の人。ごめん。

4

1 に答える 1

2

commandコールバックは、新しいスケール値を引数として受け取ります。getVal定義を次のように変更します。

def getVal(self, newscale):
    print newscale
于 2013-06-19T03:25:13.800 に答える