[英]How can I change color of button when it pushed with tkinter?
我做了 100 個按鈕,我想改變按下按鈕的顏色。 我怎樣才能做到這一點? 這是我的代碼。
import tkinter as tk
def settingships():
column = -1
row = 0
root = tk.Tk()
root.title('set ships')
root.geometry('470x310')
for i in range(101):
if i > 0:
if i%10 == 1:
row += 1
column = -1
column += 1
text=f'{i}'
btn = tk.Button(root,text=text,command=collback(i)).grid(column=column,row=row)
root.mainloop()
def collback(i):
def nothing():
btn.config(bg='#008000')
return nothing
首先, i
不在collback()
中使用。 第二個btn
在nothing()
中未定義。 您應該將btn
傳遞給collback()
。
為此,您需要替換以下行:
btn = tk.Button(root,text=text,command=collback(i)).grid(column=column,row=row)
至:
btn = tk.Button(root, text=text)
btn.grid(column=column, row=row)
btn.config(command=collback(btn))
並修改collback()
如下:
def collback(btn):
def nothing():
btn.config(bg='#008000')
return nothing
或者簡單地使用 lambda 替換collback()
:
btn.config(command=lambda b=btn: b.config(bg='#008000'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.