J'essaie d'écrire un programme avec une interface très simple pour une calculatrice. Je dois encore ajouter quelques fonctions à ce sujet, j'ai testé mon code jusqu'à présent et je reçois une erreur de tkinter très étrange. Pourriez-vous s'il vous plaît expliquer à moi quel est le problème?
Ceci est l'erreur: et ceci est mon code: p>
3 Réponses :
Êtes-vous sûr que entrée.get (...) code> est correct, c'est-à-dire que obtenez code> est une méthode statique / classe, ou si vous créez une instance de entrée code> et appelant obtenir code> à ce sujet? p>
.grid () code> méthode renvoie Aucun code>. Ce que vous devriez faire est e1 = entrée (haut, bd = 5) code>, puis e1.grid (ligne = 1, colonne = 1) code> L'erreur se résoudre. p>
the au lieu de: p>
.grid () code> méthode renvoie Aucun code>, d'où vous attribuez Aucun code> à vos variables. Vous devriez les casser en deux lignes, par exemple: p>
from tkinter import *
import tkinter
from tkinter import messagebox
def process():
try :
number1 = Entry.get(E1)
number2 = Entry.get(E2)
operator = Entry.get(E3)
number1 = int(number1)
number2 = int(number2)
if operator == "+" :
answer = number1 + number2
Entry.insert(E4,0,answer)
print(answer)
except ValueError:
messagebox.showwarning("Warning", "Please enter the value in integer")
top = tkinter.Tk()
L1 = Label(top, text ='My calculator',)
L1.grid(row = 0 , column = 1)
L2 = Label(top, text = "Number 1",)
L2.grid(row = 1 , column = 0)
L3 = Label(top, text = 'Number 2',)
L3.grid(row = 2, column = 0)
L4 = Label(top, text = 'Operator',)
L4.grid(row=3, column = 0)
L5 = Label(top, text = 'Answer:',)
L5.grid( row = 4, column = 0)
E1 = Entry(top, bd = 5,)
E1.grid( row = 1 , column = 1)
E2 = Entry( top , bd = 5,)
E2.grid( row = 2, column = 1)
E3 = Entry( top, bd = 5,)
E3.grid(row = 3, column = 1)
E4 = Entry( top, bd = 5,)
E4.grid(row=4, column= 1 )
B = Button(top, text = "Submit here: ", command = process)
B.grid(row = 5 , column = 1,)
top.mainloop()
.grid () code> méthode renvoieAucun code>. Ce que vous devriez faire este1 = entrée (haut, bd = 5) code>, puise1.grid (ligne = 1, colonne = 1) code> laissez-moi savoir si cela aide si cela aide@LazyCoder Oui, merci beaucoup. L'explication serait que l'entrée.Grid ne construit que l'interface pendant que l'entrée renvoie également quelque chose? Quand devrais-je utiliser entrée.Grid alors, avez-vous une idée?
@LazyCoder D'accord, merci beaucoup. Passe une bonne journée!
L'entrée crée un objet. Alors que la grille appelle une méthode qui ne renvoie aucune. Vous avez besoin de référence d'objet avec E1. C'est donc ça.