Как изменить цвет кнопки в tkinter
Я продолжаю получать следующее сообщение об ошибке: AttributeError: объект "NoneType" не имеет атрибута "configure"
# create color button
self.button = Button(self,
text = "Click Me",
command = self.color_change,
bg = "blue"
).grid(row = 2, column = 2, sticky = W)
def color_change(self):
"""Changes the button's color"""
self.button.configure(bg = "red")
2 ответов
когда вы self.button = Button(...).grid(...)
, что относится к self.button
результат , не ссылка объект.
необходимо назначить self.button
переменная перед паковать / griding она.
Это должно выглядеть примерно так:
self.button = Button(self,text="Click Me",command=self.color_change,bg="blue")
self.button.grid(row = 2, column = 2, sticky = W)
еще один способ изменить цвет кнопки, если вы хотите сделать несколько операций вместе с изменением цвета. С помощью Tk().after
метод и привязка метод изменения позволяет изменять цвет и выполнять другие операции.
Label.destroy
- еще один пример метода after.
def export_win():
//Some Operation
orig_color = export_finding_graph.cget("background")
export_finding_graph.configure(background = "green")
tt = "Exported"
label = Label(tab1_closed_observations, text=tt, font=("Helvetica", 12))
label.grid(row=0,column=0,padx=10,pady=5,columnspan=3)
def change(orig_color):
export_finding_graph.configure(background = orig_color)
tab1_closed_observations.after(1000, lambda: change(orig_color))
tab1_closed_observations.after(500, label.destroy)
export_finding_graph = Button(tab1_closed_observations, text='Export', command=export_win)
export_finding_graph.grid(row=6,column=4,padx=70,pady=20,sticky='we',columnspan=3)
вы также можете вернуться к исходному цвету.