簡體   English   中英

為什么我在標簽小部件中的文本周圍出現難看的大括號? - Tkinter

[英]Why am I getting ugly curly brackets around my text in the label widget? - Tkinter

我的標簽小部件中的文本周圍有大括號。 輸出是{Total tries: 0}而不是Total tries: 0

這是我的代碼的簡短版本:

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()
self.label["text"] = "Total tries: 0",

行尾有一個逗號。 逗號將分配給self.label["text"]從字符串更改為元組。 刪除逗號,並刪除花括號。

我遇到了類似的問題,但這些解決方案都不適合我。 對於未來遇到此問題的任何人,我在包含空格的文本中出現錯誤,例如"Health and Fitness"將打印為{Health and Fitness}

對我來說,解決方案是實例化標簽,例如:

score = 25
tk.Label(container, text=("Health and Fitness",score)).pack()

而是,像這樣

toPrint = "Health and Fitness" + str(score)
tk.Label(container, text=toPrint).pack()

我不知道為什么會這樣; 但是,當我使用 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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM