Есть ли способ изменить цвет кнопок, когда кнопка сделана в функции? - PullRequest
0 голосов
/ 09 мая 2019

Я сделал кнопку внутри функции, и когда кнопка нажата, запускается команда для изменения цвета кнопки.Однако это не работает, так как я получаю сообщение об ошибке, но мне нужно создать кнопку в функции.

Это работает, когда кнопка определена вне функции, и я предполагаю, что проблема заключается в том, что данные забываются послефункция заканчивается.

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 Ответ

1 голос
/ 09 мая 2019

Установите ваш 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...