1

次のコードがあります。

class Test:
    def __init__(self, master): # master is a Tk or Toplevel instance
        self.master, self.typeFrame = master, tk.Frame(master)
        self.typeVar = tk.StringVar(self.typeFrame)
        for column, wordType in enumerate(['Noun', 'Verb', 'Adjective', 'Adverb'], 1):
            typeRadioButton = tk.Radiobutton(self.typeFrame, text = wordType, textvariable = self.typeVar, value = wordType, command = self.createLambda(wordType))
            typeRadioButton.grid(row = 1, column = column)
        self.typeFrame.grid()

    def createLambda(self, obj):
        return lambda: self.changeInfo(obj)

    def changeInfo(self, obj):
        pass # this will do something later

ただし、このようなコードを実行すると、ラジオボタンにはテキストが関連付けられていません。

root = tk.Tk()
test_instance = Test(root)
test_instance.master.mainloop()

どうすればこれを修正できますか? 前もって感謝します!

4

1 に答える 1

2

に変更textvariable=...variable=...ます。

self.typeFrame.pack()ところで、あなたの例にはorが含まれていませんself.typeFrame.grid(..)

于 2013-06-17T03:03:11.417 に答える