【发布时间】:2021-02-16 18:56:19
【问题描述】:
我一直在尝试找出 tkinter,因为我的计算机科学项目需要它,所以我对它还是很陌生,但我正在尝试制作一个按钮,当按下时,变量会增加并输出更改的金额。
这是我尝试过的原始代码:
from tkinter import *
root = Tk()
item_num = 0
def AddButton():
global item_num
item_num =+ 1
item_text = "Item "+ item_num
item1 = Label(receiptFrame, text=item_text, padx=25, pady=10)
item1.pack()
addButton = Button(root, text="Add Button", padx=25, pady=25, command=AddButton)
addButton.pack()
receiptFrame = Frame(root, width=70, height=30)
receiptFrame.pack()
root.mainloop
当我按下按钮时,它会出现:
item_text = "项目"+ item_num
TypeError: 只能将 str(不是“int”)连接到 str
我尝试使用我在此处找到的另一个解决方案,使用 IntVar(), set & get 但运行时我得到:
TypeError: 只能将 str(不是“IntVar”)连接到 str
from tkinter import *
root = Tk()
item_num = 0
item_num = IntVar()
def AddButton():
global item_num
item_num.set(item_num.get()+1)
item_num = int(item_num)
item_text = "Item "+ item_num
item1 = Label(receiptFrame, text=item_text, padx=25, pady=10)
item1.pack()
addButton = Button(root, text="Add Button", padx=25, pady=25, command=AddButton)
addButton.pack()
receiptFrame = Frame(root, width=70, height=30)
receiptFrame.pack()
root.mainloop
我也尝试过使用 lambda 将 item_num 作为参数放入函数中,但是当我这样做时,按钮根本无法再次按下,我不确定那里出了什么问题
再次,我不完全确定我在做什么,所以我会很感激任何半初学者的解决方案啊哈 :)
【问题讨论】:
-
应该是
item_num += 1和item_text = "Item",item_num。 -
我想你的意思是
item_text = "Item "+ str(item_num)。