簡體   English   中英

使用 tkinter 按下按鈕時,如何更改按鈕的顏色?

[英]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()中使用。 第二個btnnothing()中未定義。 您應該將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM