Tkinter按钮点击后未切换为橙色的问题求助
解决Tkinter按钮点击后无法切换为橙色的问题
你的代码存在两个核心问题,导致按钮点击后颜色不变化:
- 颜色修改代码
button.configure(background='orange')没有放在clicked回调函数内部,仅在程序启动时执行一次,点击按钮时不会触发这段逻辑 clicked函数内的global clicks是未定义的冗余代码,且未声明button为全局变量,即使把颜色代码移入函数也会报错
修正后的代码(全局变量方式)
from tkinter import * root = Tk() root.geometry('300x300') def clicked(): # 声明button为全局变量,让函数能访问外部定义的按钮对象 global button button.configure(background='orange') button = Button(root, justify=CENTER, text="Click Me!", command=clicked) button.pack() root.mainloop()
更优实现(避免全局变量)
如果不想依赖全局变量,可以通过lambda传递按钮对象:
from tkinter import * root = Tk() root.geometry('300x300') def clicked(btn): btn.configure(background='orange') button = Button(root, justify=CENTER, text="Click Me!", command=lambda: clicked(button)) button.pack() root.mainloop()
内容的提问来源于stack exchange,提问作者iMightjustGiveYouaBite
相关产品推荐
相关产品推荐

