Я использую python и tkinter для создания инструмента визуализации, который может обновить sh и визуализировать объект обновления. Прямо сейчас объект не может измениться, потому что поток не работает. Любая помощь или общие знания будут оценены. Я относительно новичок в потоках и tkinter.
пример объекта, который я хочу принять
class color1:
def __init__(self, color):
self.color = color
def change_col(self, new_color):
self.color = new_color
def pass_col(self):
return(self)
мой код визуализации
class my_visual(threading.Thread):
def __init__(self, col1):
threading.Thread.__init__(self)
self.start()
self.col1 = col1
def viz(self):
self.root = Tk()
btn1 = Button(self.root, text = 'Refresh', command = self.refresh)
btn1.pack()
frame = Frame(self.root, width = 100, height = 100, bg = self.col1.color)
frame.pack()
btn2 = Button(self.root, text = 'Close', command = self.exit)
btn2.pack()
self.root.mainloop()
def refresh(self):
self.root.quit()
self.root.destroy()
self.col1 = self.col1.pass_col()
self.viz()
def exit(self):
self.root.quit()
self.root.destroy()
Код, который работает
c = color1('RED')
test = my_visual(c)
test.viz()
Код, который не работает
В этой версии refre sh работает, а многопоточность - нет. Когда поток работает, refre sh не поймет, что объект изменился.
c.change_col('BLUE')