在功能中创建按钮时,是否可以更改按钮颜色?

时间:2019-05-09 14:23:57

标签: python-3.x tkinter

我已经在函数中创建了一个按钮,单击该按钮时,会运行一条命令来更改按钮的颜色。 但是,这在我遇到错误时不起作用,但是我需要在函数中创建按钮。

当按钮在函数外部定义时起作用,并且我认为问题在于函数结束后忘记了数据。

from tkinter import *

root = Tk()

def ColourChange(Letter):
    NameButton.config(bg = "red")

def Change():
    Letter = "a"
    NameButton=Button(root, text = "This", command = lambda Letter = Letter: 

ColourChange(Letter)

NameButton.pack()

Change()

当我单击按钮时,我希望改变背景的颜色。 实际错误是

  

NameButton.config(bg =“ red”)NameError:名称'NameButton'未定义”

1 个答案:

答案 0 :(得分:1)

设置global variable,以便其他功能可以访问它。还应将NameButton.pack()移到NameButton=Button(root,text="This",command=lambda Letter=Letter: ColourChange(Letter))之后的新行。

from tkinter import *

root=Tk()

def ColourChange(Letter):
    NameButton.config(bg="red")

def Change():
    global NameButton  # global variable
    Letter="a"
    NameButton=Button(root,text="This",command=lambda Letter=Letter: ColourChange(Letter))
    NameButton.pack()
#NameButton.pack()

Change()