web-dev-qa-db-fra.com

Comment changer l'état de Tkinter Button de désactivé à normal?

J'ai besoin de changer l'état de DISABLED en NORMAL d'un Button lorsqu'un événement se produit.

Voici l'état actuel de mon bouton, qui est actuellement désactivé:

  self.x = Button(self.dialog, text="Download",
                state=DISABLED, command=self.download).pack(side=LEFT)

 self.x(state=NORMAL)  # this does not seem to work

Anyonne peut m'aider sur la façon de le faire?

31
scandalous

Vous devez simplement définir le state de votre bouton self.x Sur normal:

self.x['state'] = 'normal'

ou

self.x.config(state="normal")

Ce code irait dans le rappel pour l'événement qui entraînerait l'activation du bouton.


En outre, le bon code devrait être:

self.x = Button(self.dialog, text="Download", state=DISABLED, command=self.download)
self.x.pack(side=LEFT)

La méthode pack dans Button(...).pack() renvoie None et vous l'assignez à self.x. En réalité, vous voulez affecter la valeur de retour de Button(...) à self.x, Puis, à la ligne suivante, utilisez self.x.pack().

57
Sheng

Je pense qu'un moyen rapide de changer les options d'un widget consiste à utiliser la méthode configure.

Dans votre cas, cela ressemblerait à ceci:

self.x.configure(state=NORMAL)
7
guibe80