2011-04-04 6 views
7

Je continue à obtenir l'erreur suivante: AttributeError: objet « NoneType » n'a pas d'attribut « configure »Comment changer la couleur des boutons avec tkinter

# create color button 
self.button = Button(self, 
        text = "Click Me", 
        command = self.color_change, 
        bg = "blue" 
        ).grid(row = 2, column = 2, sticky = W) 

def color_change(self): 
    """Changes the button's color""" 

    self.button.configure(bg = "red") 

Répondre

11

Quand vous faites self.button = Button(...).grid(...), ce qui sera affecté à self.button est le résultat de la commande grid(), pas une référence à l'objet Button créé.

Vous devez affecter votre variable self.button avant de l'emballer/de la rectifier. Il devrait ressembler à ceci:

self.button = Button(self,text="Click Me",command=self.color_change,bg="blue") 
self.button.grid(row = 2, column = 2, sticky = W) 
+0

excellent, c'est la solution! Merci beaucoup! –

+0

Comment changer l'arrière-plan une fois que vous avez déjà fait le bouton? – RhetoricalRuvim

0

le système est bon. la bonne façon de formater le bouton est '.config'. Pas '.configure'

+0

Ceci est vraiment un commentaire, pas une réponse. Une fois que vous avez suffisamment [réputation] (https://stackoverflow.com/help/whats-reputation) vous pourrez [commenter n'importe quel article] (https://stackoverflow.com/help/privileges/comment); Au lieu de cela, [fournissez des réponses qui ne nécessitent pas de précisions de la part du demandeur] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- je-fais-à la place). – peacetype

+0

oh, j'ai compris. Désolé de vous embêter. Je suis nouveau ici au débordement de la pile. –

Questions connexes