2017-09-24 1 views
0

J'essaye de créer une interface graphique avec Tkinter où vous tapez deux nombres dedans et il les ajoute ensemble. Je ne sais pas comment afficher la réponse dans ma fenêtre. Aussi quand je le lance il y a une erreur qui dit: TypeError: type d'opérande non pris en charge (s) pour +: « Entrée » et « Entrée »Construire des interfaces graphiques avec Tkinter

from tkinter import * 
window = Tk() 
def add(): 
    label = Label(window, text=entry1 + entry2) 
entry1 = Entry(window, width=10) 
entry2 = Entry(window, width=10) 
button = Button(window, text='Click to add', command=add) 
entry1.pack() 
entry2.pack() 
button.pack() 
label.pack() 

Si quelqu'un pouvait me aider à résoudre mon code, je serais très reconnaissant il.

Répondre

2

Votre code contient un certain nombre d'erreurs. Vous ne pouvez pas utiliser directement le champ Entrée, mais vous devez ajouter les valeurs dans le champ Entrée. Vous devez également ajouter le traitement de la boucle principale de tkinter.

Voici un exemple en cours d'exécution rapide et sans erreur de manipulation (Il échoue si vous ne saisissez pas de valeurs pour l'un des champs d'entrée),

import tkinter 

mainWindow = tkinter.Tk() 
mainWindow.title("Demo App") 
mainWindow.geometry("640x480+200+200") 

entry1 = tkinter.Entry(mainWindow,width=10) 
entry2 = tkinter.Entry(mainWindow,width=10) 
entry1.pack() 
entry2.pack() 

label = tkinter.Label(mainWindow,text="Click on add to add numbers") 
label.pack() 

def add_values(): 
    result = int(entry1.get()) + int(entry2.get()) 
    label['text'] = result 

button = tkinter.Button(mainWindow,text="Add",command=add_values) 
button.pack() 

mainWindow.mainloop() 
+0

grâce ce qui a contribué beaucoup! –

+1

Votre réponse serait meilleure si vous expliquiez ce que vous avez fait différemment. Sinon, le lecteur est obligé de comparer votre code à l'original, ligne par ligne et caractère par caractère, pour essayer de comprendre ce que vous avez fait pour le faire fonctionner. –

+0

Mis à jour avec les principaux changements. –

1

Votre code avait quelques erreurs. Le premier est que vous ne pouvez pas ajouter deux entrées simplement en plaçant un symbole "+" entre elles. Vous devez obtenir les valeurs STRING, puis les convertir en INTEGER, les ajouter, puis définir la valeur de l'ENTRY BOX. La deuxième erreur est que vous n'utilisez pas la boucle principale. Sans MAIN LOOP, l'interface graphique de tkinter disparaîtra, afin que l'interface graphique continue d'utiliser LOOP.

Utilisation de notepad ++. Testé sur Windows 7. Python 2,7

from tkinter import * 

window = Tk() 

#name window 
window.title('My Add') 

#window sized 
window.geometry('250x200') 


def add(): 
    sum = int(entry1.get()) + int(entry2.get()) 
    entry3.delete(0,END) 
    entry3.insert(0,str(sum)) 

L1 = Label(window, text='Number 1:')  
entry1 = Entry(window, width=20) 
L1.pack() 
entry1.pack() 

L2 = Label(window, text='Number 2:') 
entry2 = Entry(window, width=20) 
L2.pack() 
entry2.pack() 

button = Button(window, text='Click to add', command=add) 
button.pack() 

L3 = Label(window, text='Sum of Number 1 and Number 2:') 
entry3 = Entry(window, width=20) 
L3.pack() 
entry3.pack() 

window.mainloop() 

enter image description here

+0

Votre réponse serait meilleure si vous expliquiez ce que vous avez fait différemment. Sinon, le lecteur est obligé de comparer votre code à l'original, ligne par ligne et caractère par caractère, pour essayer de comprendre ce que vous avez fait pour le faire fonctionner. –

+0

veillera à la prochaine fois. –

+0

Vous pouvez toujours revenir en arrière et modifier vos réponses. –