Démarrer avec l'interface graphique avec Tkinter mais il ne fonctionne pas
Traceback (most recent call last): File "guidemo1.py", line 4, in <module> thelabel = Label(root, "hello") File "C:\Users\Admin\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 2766, in __init__ Widget.__init__(self, master, 'label', cnf, kw) File "C:\Users\Admin\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 2295, in __init__ classes = [(k, v) for k, v in cnf.items() if isinstance(k, type)] AttributeError: 'str' object has no attribute 'items'
J'obtiens l'erreur suivante:
from tkinter import * root = Tk() thelabel = Label(root, "hello") thelabel.pack() root.mainloop()
3 Réponses :
La documentation de Label
indique que le deuxième argument est une liste et non une chaîne. Vous pouvez ignorer ce deuxième argument de position et utiliser le text
argument de mot-clé:
thelabel = Label(root, text = "hello")
Au lieu de
theLabel = Label(root, text="hello")
Vous devez avoir utilisé le paramètre "texte" pour les libellés
thelabel = Label(root, "hello")
Je pense que c'est un argument plutôt qu'un paramètre ici.
le Label
n'est pas fait correctement, le code doit être:
import tkinter root = tk.Tk() thelabel = tkinter.Label(root, text="hello") thelabel.pack() root.mainloop()
aussi, vous pouvez également utiliser à from tkinter import*
, je le fais simplement comme ça, si vous le faites, changez également le libellé en Label(root, text="hello")
et root en juste Tk()
Ne devrait-il pas from tkinter import *
il y a d'autres façons, de tkinter import * est une option, mais je me sens juste à l'aise de le faire