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 renvoie
Aucun code>. Ce que vous devriez faire est
e1 = entrée (haut, bd = 5) code>, puis
e1.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.