6

これは、私のプログラムの 1 つでやりたいことに近い、Effbot Web サイトで見つけた小さなコード例です。

from Tkinter import *

fen =Tk()

class test_Tk_class:
    def __init__(self):
        self.var = IntVar()
        c = Checkbutton(
            fen, text="Enable Tab",
            variable=self.var,
            command=self.cb)
        c.pack()

    def cb(self,event):
        print "variable is", self.var.get()

    a = test_Tk_class()
    fen.mainloop()

ただし、このコードは機能しません。コールバック関数cbは 2 つの引数を取り、何も指定されていないため、機能しません。引数はどのように指定しeventますか?

4

2 に答える 2

9

この場合、このコードはまったく必要ありませんevent。完全に削除するだけで機能しました:

def cb(self):
    print "variable is", self.var.get()

コードをそのように構成するのは、関数をキーの押下またはマウスのクリックにバインドする場合のみです。ただし、チェックボタンのチェック/チェック解除には必要ありません。

Effbot でこれをコーディングした人が何をしようとしていたのかはわかりませんが、彼が正しくやったとは思えません。多分彼はタイプミスをしたか、何か他のことを考えていたのでしょう。

于 2013-10-03T16:01:25.300 に答える