5

I'm getting curly brackets around the text in my label widget. The output is {Total tries: 0} instead of Total tries: 0.

Here is a short version of my code:

class Cell:
    def check(self):
        mem.tries += 1
        mem.update_tries()

class Memory(Frame):
    def __init__(self, master):
        super(Memory, self).__init__(master)
        self.grid()
        self.create_widgets()
        self.tries = 0

    def create_widgets(self):
        self.label = Label(self)
        self.label["text"] = "Total tries: 0",
        self.label["font"] = ("Helvetica", 11, "italic")
        self.label.grid(row = 7, columnspan = 7, pady = 5)

    def update_tries(self):
        self.label["text"] = "Total tries: " + str(self.tries)

root = Tk()
root.title("Memory")
root.geometry("365x355")
mem = Memory(root)
root.mainloop()
4

3 に答える 3

8
self.label["text"] = "Total tries: 0",

行末にコンマがあります。コンマは、割り当てられる値をself.label["text"]文字列からタプルに変更します。コンマを削除すると、中括弧が削除されます。

于 2011-11-28T22:06:51.293 に答える
0

なぜそうなるのかわかりません。ただし、Tkinterを使用した場合は、常に、StringVarまたはconfigメソッドを使用してテキストを更新していました。 これがいくつかの例のページです

を使用した例StringVar

# in class Memory

def create_widgets(self):
  self.labelText = StringVar()
  self.label = Label(self, textvariable = self.labelText)
  ... rest of method ...

def update_tries(self):
  self.labelText.set("Total tries: " + str(self.tries))
于 2011-11-28T22:01:52.977 に答える