![](/img/trans.png)
[英]FirebaseCommandException: An error occured on the Firebase CLI when attempting to run a command
[英]tkinter Error that occured when using list to create label
我最近正在研究 python,现在我正在研究 tkinter 和 firebase。 我正在制作一个可以从经理更改的时间线查看器。
在制作时,我必须制作一张 5*7 大小的标签表。 起初,我试着让它像: label12 = Label(...
但我认为我可以将其放入列表中:label[1][2] = Label(...)
我在其他代码上对其进行了测试,第一个维度列表运行良好,配置正常。 我可以更改 label 的文本: label[1].config(text="test)
但是,当我在第二维列表上使用它时,它给了我一个错误:
AttributeError: 'int' object 没有属性 'config'
这是我发生错误的代码的一部分。 当我使用 config 从 daylabel 更改文本时,它运行良好。
def RegistClicked():
day = \['Mon', 'Tue', 'Wed', 'Thu', 'Fri'\]
dayarray = ["월요일", "화요일", "수요일", "목요일", "금요일"]
daylabel = [0 for i in range(5)]
numlabel = [0 for i in range(8)]
classnumlabel = [[0 for i in range(6)] for j in range(8)]
for i in range(0, 5):
daylabel[i] = Label(win, width=10, height=2, text=dayarray[i])
daylabel[i].grid(row=4, column=i+2)
for i in range(0, 7):
numlabel[i] = Label(win, width=10, height=2, text=i+1)
numlabel[i].grid(row=i+5, column=1)
for i in range(1, 8):
for j in range(1, 6):
classnumlabel[i][j] = Label(win, width=10, text="value")
classnumlabel[i][j].grid(row=i+4, column=j+1)
global selectclass
selectclass = strvar.get()
classlabel.config(text=selectclass)
for i in range(5):
for j in range(1, 8):
dir = db.reference(selectclass +'/'+ day[i] +'/'+ 'class' + str(j))
print(selectclass +'/'+ day[i] +'/'+ 'class' + str(j))
classnumlabel[j][i].config(text=dir.get())
一切都很好,直到我点击刷新按钮,触发上面的 function,会杀死程序,错误说 dayclasslabel 数组是一个'int' object。
您的错误是由于尝试在零 integer 上调用config
引起的。
而不是“预定义”充满零的列表,只需append
放入其中。
此外,不要使用“幻数”和范围,例如(0, 5)
, (0, 7)
,然后突然使用(1, 8)
和(1, 6)
,而是将值命名(或者更好的是,在在天的情况下,您可以仅enumerate
日期名称列表。
你可能正在寻找这样的东西......
from tkinter import Label, Tk
def build_class_win(class_count):
win = Tk()
selectclass = '...'
day_names = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
day_labels = []
num_labels = []
class_num_labels = {}
# Build day labels
for day_index, day_name in enumerate(day_names):
day_label = Label(win, width=10, height=2, text=day_name)
day_label.grid(row=0, column=day_index + 1)
day_labels.append(day_label)
# Build class labels
for class_index in range(class_count):
num_label = Label(win, width=10, height=2, text=class_index + 1)
num_label.grid(row=1 + class_index, column=0)
num_labels.append(num_label)
# Build mapping of day/class labels
for day_index, day_name in enumerate(day_names):
for class_index in range(class_count):
reference = f'{selectclass}/{day_name}/class{class_index}'
cls_label = Label(win, width=10, text=reference)
cls_label.grid(row=class_index + 1, column=day_index + 1)
class_num_labels[(day_index, class_index)] = cls_label
# TODO: add firebase stuff here
return win
if __name__ == '__main__':
win = build_class_win(class_count=7)
win.mainloop()
window 看起来像
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.