我正在使用 tkinter 创建一个类,它允许您输入多个产品的信息,除了更改输入字段以设置其他产品的值之外,我已经完成了所有其他操作。我将产品转换过程放入一个名为 saveVars 的函数中,该函数将输入的信息保存到特定的产品变量中,然后清除输入字段,并切换要在第二个产品变量上执行的 saveVars。 i = 1 def saveVars(i): if i == 1: product1.productName = self.prodName.get() product1.productID = self.prodID.get() product1.productSize = self.prodSize.get() product1.productPrice = self.prodPrice.get() product1.productQuant = self.quantity.get() elif i == 2: product2.productName = self.prodName.get() product2.productName = self.prodID.get() product2.productSize = self.prodSize.get() product2.productPrice = self.prodPrice.get() product2.productQuant = self.quantity.get() elif i == 3: product3.productName = self.prodName.get() product3.productName = self.prodID.get() product3.productSize = self.prodSize.get() product3.productPrice = self.prodPrice.get() product3.productQuant = self.quantity.get() newProduct() i += 1 return i我希望它能够根据 +1 函数将条目保存到的变量切换到下一个相应的产品,我让它将 i 函数作为新 i 返回,然后应该将条目保存到过程中的下一个变量,但它一直告诉我'缺少 1 个必需的位置参数:'i'
2 回答

侃侃无极
TA贡献2051条经验 获得超10个赞
您试图在没有参数的情况下调用该函数,因为该command
属性不带参数只是函数的名称。
要传递参数,您可以使用partial
表单functools
包
进口声明:
from functools import partial
您对函数的调用如下所示:
addItemButton = Button(window, text = "Add to Cart", fg='black',bg='yellow',width = 10, height = 2, command = partial(saveVars,i)) addItemButton.place(x=800,y=375)
i
您可以使用全局变量在您的类中设置初始值,而不是在类之外声明它。您可以将其保存在您希望的任何位置,并在调用该函数时传递它。
添加回答
举报
0/150
提交
取消