创建后如何更改 tkinter Canvas 的背景颜色?

How to change the background color of a tkinter Canvas after it is created?

我知道 canvas = tkinter.Canvas(bg='red') 创建了一个背景颜色为红色的 canvas。由于背景颜色是在创建新的 canvas 时选择的,有没有办法在程序中更改它而不创建新的 canvas?

我能想到的最佳解决方案是创建一个大矩形,用所需的背景颜色覆盖整个屏幕,但实际背景颜色在我这样做后保持不变,并在我清除 canvas.

您可以使用存在于所有小部件上的configure方法,并在canvas上调用它来修改background选项:

您可以通过单击以下示例中的 canvas 来更改背景颜色:

import tkinter as tk

def change_color(dummy_e):
    canvas.configure(bg='cyan')

root = tk.Tk()
canvas = tk.Canvas(root, bg='red')
canvas.pack()
canvas.bind('<1>', change_color)

root.mainloop()