Alors ... je veux transformer ma console chatbot en interface utilisateur graphique et chaque fois que je le fais, il semble ne jamais fonctionner ... ill coller un code original (qui fonctionne dans la console) puis je vais coller le même code, mais ajouté quelques codes tkinter pour le transformer en gui au lieu de l'application console (juste clarifier à nouveau, mon code gui ne fonctionne vraiment pas). quelle était mon erreur dans le code gui et comment le faire fonctionner.J'ai du mal à utiliser tkinter en python pour créer un simple gui pour mon simple chatbot
import random
#THIS IS THE CONSOLE APP CODE
greetings = ['hola', 'hello', 'hi', 'Hi', 'hey!','hey']
random_greeting = random.choice(greetings)
question = ['How are you?','How are you doing?']
responses = ['Okay',"I'm fine"]
random_response = random.choice(responses)
while True:
userInput = input(">>> ")
if userInput in greetings:
print(random_greeting)
elif userInput in question:
print(random_response)
else:
print("I did not understand what you said")
est bien ici le code potentiel IUG que j'ai essayé
import random
import tkinter
#GUI CODE
t = tkinter.Tk()
userInput = tkinter.Entry(t)
userInput.pack()
def cb():
greetings = ['hola', 'hello', 'hi', 'Hi', 'hey!','hey']
random_greeting = random.choice(greetings)
question = ['How are you?','How are you doing?']
responses = ['Okay',"I'm fine"]
random_response = random.choice(responses)
while True:
if 'hello' in userInput.get():
lab = tkinter.Label(t,text =random_greeting)
lab.pack()
elif 'how are you' in userInput.get():
labb = tkinter.Label(t,text =random_response)
labb.pack()
else:
labc = tkinter.Label(t,text ="I did not understand what you said")
labc.pack()
button = tkinter.Button(t, text="Enter",command= cb)
button.pack()
tkinter.mainloop()
(le but de ce code chatbot est vraiment pour que je puisse comprendre l'interface graphique plus) Merci!
vous n'avez pas besoin d'une boucle while depuis la presse de l'utilisateur sur le bouton pour déclencher la fonction, aussi le premier test a été meilleure: 'si UserInput dans les salutations:', garder ce modèle ressemble à 'if userInput.get() dans les salutations:' – PRMoureu
Et vous ne devriez pas créer de nouveaux widgets Label tout le temps. Juste mettre à jour le texte dans l'étiquette en utilisant sa méthode '.config'. –