Maison >développement back-end >Tutoriel Python >Pourquoi `entryBox.get()` provoque-t-il une `AttributeError : L'objet NoneType n'a pas d'attribut` dans Tkinter ?

Pourquoi `entryBox.get()` provoque-t-il une `AttributeError : L'objet NoneType n'a pas d'attribut` dans Tkinter ?

DDD
DDDoriginal
2024-12-29 06:33:10850parcourir

Why Does `entryBox.get()` Cause an `AttributeError: NoneType object has no attribute` in Tkinter?

Pourquoi l'exception "AttributeError : L'objet NoneType n'a aucun attribut" à l'aide de Tkinter

Lorsque vous travaillez avec des interfaces utilisateur graphiques (GUI) à l'aide de Tkinter, il est possible de rencontrer ce qui suit erreur : "AttributeError : l'objet NoneType n'a aucun attribut." Cette erreur survient lorsqu'un attribut d'un widget, tel que get(), est appelé sur un objet défini sur Aucun.

Origine de la valeur Aucun

Dans le code fourni, l'erreur provient à partir de la fonction grabText() tentant d'appeler EntryBox.get() sur un objet auquel la valeur None a été affectée. Cela se produit parce que la fonction grid() utilisée pour placer le widget Entry dans l'interface graphique renvoie None.

En conséquence, la EntryBox est définie sur None plutôt que sur l'objet Entry réel, ce qui entraîne l'erreur lorsque le get () est appelé.

Résoudre le problème

Pour résoudre ce problème, il est crucial de diviser le code en deux lignes :

entryBox = Entry(root, width=60)
entryBox.grid(row=2, column=1, sticky=W)

En faisant cela, le widget Entry est d'abord créé puis placé dans l'interface graphique à l'aide de la fonction grid(). En conséquence, la variable EntryBox contiendra correctement l'objet Entry, permettant à l'attribut get() d'être appelé avec succès.

Cela garantit que EntryBox est attribué au widget Entry, résolvant ainsi l'objet "AttributeError: NoneType". n'a pas d'exception d'attribut.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn