我正在尝试为工资计算器创建一个tkinter标签的数组/列表,但每当我将小部件附加到我的数组时,它都会附加为int数据类型。我想添加它会允许我调用list [widgetIndex] .grid(),但由于某些原因它不是一个Label数据类型被附加到我的列表中,它给了我一个错误,说这个'int'对象没有属性称为“网格”。为什么它是一个int数据类型,与我附加它之前变量肯定的Label数据类型相反?
def addJob(jc, cc, he, wl, hl, we):
jc = jc + 1
cc = cc + 2
wageLabel = Label(root, text="Wage")
hoursLabel = Label(root, text="Hours")
wageEntry = Entry(root)
hoursEntry = Entry(root)
wl.append(wageLabel)
hl.append(hoursLabel)
we.append(wageEntry)
he.append(hoursEntry)
wl[jc-1].grid(row =0, column =cc-1, sticky=E)
hl[jc-1].grid(row =1, column =cc-1, sticky=E)
we[jc-1].grid(row = 0, column=cc)
he[jc-1].grid(row = 1, column=cc)
答案 0 :(得分:0)
您使用w1 = [ 0 ]
初始化w1。
稍后您只需追加w1
,所以您的列表将是......喜欢
[ 0, <class 'tkinter.Label'>, <class 'tkinter.Label'>, <class 'tkinter.Label'>, ... ]
取决于您添加的标签数量。
使用w1 = []
可以解决您的问题。
错误发生在列表中的第一个元素(&#34; 0&#34;)无法网格化。
在您的函数中使用print w1
会以相当简单的方式向您展示。
Bryan是对的,您发布的代码毫无疑问可以用于您打算使用它的目的,但是您传递的参数的初始化(未作为代码示例发布)定义了不同的行为。
请阅读How to create a Minimal, Complete and Verifiable Example。将代码分解为仍然可以重现错误的最小部分,主要指导您直接找到解决方案。