Tkinter:'int' 对象不支持项目分配
Tkinter: 'int' object does not support item assignment
我有一个很大的问题。前段时间我将两个代码合并到这个代码中,我早些时候解决了这个问题,现在合并它们后它又回来了,我真的不知道现在该怎么办,所以我会很感激我能得到的每一个帮助。我收到这个烦人的错误消息:
TypeError: 'int' object does not support item assignment
我不明白我刚刚去掉它怎么会出现
import tkinter as tk
NUM_BUTTONS = 2
button_list = [1, 2]
label_list = [1, 2]
label_text_list = [1, 2]
class Demo1:
def __init__(self, master):
self.master = master
self.frame = tk.Frame(self.master)
self.button1 = tk.Button(text='Menu', command=self.new_window)
self.button1.grid(row=3, column=1)
self.button2 = tk.Button(text='Quit', command=self.close_windows)
self.button2.grid(row=3, column=3)
self.label1 = tk.Label(text='Controller')
self.label1.grid(row=1, column=2)
def new_window(self):
self.newWindow = tk.Toplevel(self.master)
self.app = Demo2(self.newWindow)
def close_windows(self):
self.master.destroy()
class Demo2:
def __init__(self, master):
self.master = master
self.frame = tk.Frame(self.master)
for i in range(NUM_BUTTONS):
def wrap(button_num=i):
toggle_text(button_num)
button = tk.Button(
self.frame, text='WL', width=12, bg='red', command=wrap)
button.grid(row=2, column=i)
button_list.append(button)
label = tk.Label(
self.frame, text=label_text_list[i], width=12, bg='red')
label.grid(row=1, column=i)
label_list.append(label)
self.frame.pack()
def toggle_text(button_num):
self.button = button_list[button_num]
label = label_list[button_num]
if button['text'] == 'WL':
button['text'] = 'WYL'
label['bg'] = 'green'
else:
button['text'] = 'WL'
label['bg'] = 'red'
def close_windows(self):
self.master.destroy()
def main():
root = tk.Tk()
app = Demo1(root)
root.mainloop()
if __name__ == '__main__':
main()
label
是一个整数
label = label_list[button_num]
正在使用顶部的 label_list
label_list = [1, 2]
然后您正在尝试为其设置属性
2["color"] = "green"
显然行不通:)
您可以通过将顶部的行更改为
来修复它
label_list = []
我有一个很大的问题。前段时间我将两个代码合并到这个代码中,我早些时候解决了这个问题,现在合并它们后它又回来了,我真的不知道现在该怎么办,所以我会很感激我能得到的每一个帮助。我收到这个烦人的错误消息:
TypeError: 'int' object does not support item assignment
我不明白我刚刚去掉它怎么会出现
import tkinter as tk
NUM_BUTTONS = 2
button_list = [1, 2]
label_list = [1, 2]
label_text_list = [1, 2]
class Demo1:
def __init__(self, master):
self.master = master
self.frame = tk.Frame(self.master)
self.button1 = tk.Button(text='Menu', command=self.new_window)
self.button1.grid(row=3, column=1)
self.button2 = tk.Button(text='Quit', command=self.close_windows)
self.button2.grid(row=3, column=3)
self.label1 = tk.Label(text='Controller')
self.label1.grid(row=1, column=2)
def new_window(self):
self.newWindow = tk.Toplevel(self.master)
self.app = Demo2(self.newWindow)
def close_windows(self):
self.master.destroy()
class Demo2:
def __init__(self, master):
self.master = master
self.frame = tk.Frame(self.master)
for i in range(NUM_BUTTONS):
def wrap(button_num=i):
toggle_text(button_num)
button = tk.Button(
self.frame, text='WL', width=12, bg='red', command=wrap)
button.grid(row=2, column=i)
button_list.append(button)
label = tk.Label(
self.frame, text=label_text_list[i], width=12, bg='red')
label.grid(row=1, column=i)
label_list.append(label)
self.frame.pack()
def toggle_text(button_num):
self.button = button_list[button_num]
label = label_list[button_num]
if button['text'] == 'WL':
button['text'] = 'WYL'
label['bg'] = 'green'
else:
button['text'] = 'WL'
label['bg'] = 'red'
def close_windows(self):
self.master.destroy()
def main():
root = tk.Tk()
app = Demo1(root)
root.mainloop()
if __name__ == '__main__':
main()
label
是一个整数
label = label_list[button_num]
正在使用顶部的 label_list
label_list = [1, 2]
然后您正在尝试为其设置属性
2["color"] = "green"
显然行不通:)
您可以通过将顶部的行更改为
来修复它label_list = []