Python Tkinter: Farbveränderliches Raster von Schaltflächen? - Python, Knopf, Tkinter, Gitter

Ich verstehe, dass Sie einen Knopf machen könnenFühren Sie einige Aktionen aus, wenn Sie auf Tkinter klicken, aber wie kann ich einfach eine Schaltfläche erstellen, die beim Klicken von einer Farbe zur anderen wechselt? Wie repliziere ich dann diese Schaltfläche, um daraus ein Raster zu erstellen? Ich würde mich auch mit einem Raster von Knöpfen begnügen, die nur von einem Zeichen zum anderen wechseln.

Antworten:

1 für die Antwort № 1
import Tkinter

color="red"
default_color="white"

def main(n=10):
window = Tkinter.Tk()
last_clicked = [None]
for x in range(n):
for y in range(n):
b = Tkinter.Button(window, bg=default_color, activebackground=default_color)
b.grid(column=x, row=y)
# creating the callback with "b" as the default parameter bellow "freezes" its value pointing
# to the button created in each run of the loop.
b["command"] = lambda b=b: click(b, last_clicked)
return window

def click(button, last_clicked):
if last_clicked[0]:
last_clicked[0]["bg"] = default_color
last_clicked[0]["activebackground"] = default_color
button["bg"] = color
button["activebackground"] = color
last_clicked[0] = button

w = main()
Tkinter.mainloop()

Verwandte Fragen
Speisekarte