0
votes

Le programme de calculatrice renvoie une erreur tkinter en python

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: xxx

et ceci est mon code: xxx


4 commentaires

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


3 Réponses :


1
votes

Êtes-vous sûr que entrée.get (...) est correct, c'est-à-dire que obtenez est une méthode statique / classe, ou si vous créez une instance de entrée et appelant obtenir à ce sujet?


0 commentaires

1
votes

.grid () méthode renvoie Aucun . Ce que vous devriez faire est e1 = entrée (haut, bd = 5) , puis e1.grid (ligne = 1, colonne = 1) L'erreur se résoudre.


0 commentaires

0
votes

Problèmes
  1. the .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>

    au lieu de: 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()
    


0 commentaires