【问题标题】:Tkinter - No attribute Label 'get()' errorTkinter - 没有属性标签'get()'错误
【发布时间】:2021-05-01 00:19:44
【问题描述】:

我正在制作一个计数器应用程序,因此有 2 个红色和蓝色团队。就像你在玩剪刀石头布的游戏一样,你想记录你使用它的点数。

所以我尝试使用带有标签的get(),它没有显示任何属性,而且红队计数器也没有显示。

from tkinter import *

#Creating a  new instance
root = Tk()

#Icon for the app
root.iconbitmap('D:\Documents\ico\counter.ico')

# setting up title for the program
root.title("Counter")

#Creating functions for all the instances

def blue_counter_update():
    f_num = int(blue_label_number.get())
    blue_label_number.delete(0,END)
    blue_label_number.insert(0,f_num+1)


def red_label_color():
    red_label.config(bg="red")

def blue_label_color():
    blue_label.config(bg="blue")

#creating a label for the counter
red_label_head = Label(root , text = "RED TEAM",fg = "red")
blue_label_head = Label(root , text = "BLUE TEAM",fg="blue")
red_label = Label(root , text = "Counter ????????")
red_label_number = Label(root , text = "0")
blue_label_number = Label(root , text = "0")
blue_label = Label(root , text = "Counter ???????? ")
counter_header = Label(root , text = "COUNTER")

#Creating a button for the counter
counter_header.grid(row = 0 , column =0 , columnspan =3)
red_button = Button(root , text = "Increase Counter")
blue_button = Button(root , text = "Increase Counter",command =blue_counter_update)

# griding all the instances
red_label_head.grid(row = 1 , column = 1)
red_label.grid(row = 2 , column = 1)
red_label_number.grid(row = 4 , column = 1)
red_button.grid(row = 5 , column = 1)

blue_label_head.grid(row = 1 , column = 2)
blue_label.grid(row = 2 , column = 2)
red_label_number.grid(row = 4 , column = 2)
blue_button.grid(row = 5 , column = 2)

#Setting the size of the tkinter instance
root.geometry("200x110")

#Making the instance de-sizeable
root.resizable(False, False)

#Looping the Tkinter instance
root.mainloop()

【问题讨论】:

    标签: python python-3.x tkinter label


    【解决方案1】:

    这不是获取标签文本的方法。相反,请label.cget("text")

    【讨论】:

    • 那是因为它不是一个条目。你需要做label.config(text='')
    • 那么如果我不删除它,每次用户单击按钮时如何更改它?
    • 你创建了一个函数,当按钮被按下时它会被调用。然后进行配置
    【解决方案2】:

    例如可以通过 cget 获取 Label 的文本

      f_num = int(blue_label_number.cget("text"))
    

    而且我们还没有为 labeم 删除和插入,所以我建议你使用一个变量来 每次按下按钮时增加它,然后使用 label.config 将其添加到标签文本中

    def blue_counter_update():
      f_num= int(blue_label_number.cget("text"))
      f_num +=1
      blue_label_number.config(text= str(f_num) )
    

    【讨论】:

    • 我试过了,但数字没有增加
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    相关资源
    最近更新 更多