【发布时间】:2021-04-18 13:20:13
【问题描述】:
您好,我是 Python 的初学者,我正在使用 tkinter 开发一个聊天机器人界面。我遇到的问题是,在询问“您好,您叫什么名字?”后,我似乎无法在窗口中输入内容。相反,对话继续到下一行,说你好(第一个条目)你想买票吗?
有没有办法让用户输入他们的名字,然后说明输入?
例如:
用户:嗨
Bot:你好,你叫什么名字?
用户:汤姆
Bot:嗨,Tom,你要买票吗?
目前程序是这样的:
用户:嗨
Bot:你好,你叫什么名字?
Bot:你好,你要买票吗?
我不确定是什么导致 Bot 声明另一个语句,在允许用户输入之前,我曾考虑使用 StringVar() 将名称存储在 name_var 中,然后在下一行中使用该变量,但没有t 工作.. 任何想法如何解决这个问题?
这是我目前的代码:
# Representing the parent window
root = Tk()
#Title of window
root.title('Chatbot')
#Function to send the message
def send():
send = "You =>" + entry.get()
text.insert(END, "\n" + send) if(entry.get()=="Hi" or entry.get()=="hi" or entry.get()=="Hi there" or entry.get()=="hi there" or entry.get()=="Hello" or entry.get()== "hello"):
text.insert(END, "\n" + "Bot => Hi there, whats your name ?")
name_var = str(StringVar())
text.insert(END, "\n" + "Bot => Hi " + name_var + " would you like to purchase a ticket?")
else:
text.insert(END, "\n" + "Bot => Sorry, I have no answer")
entry.delete(0, END) text = Text(root)
# Adding dimensions and send button of window
text.grid(row=0, column=0, columnspan=2)
entry = Entry(root, width=100)
send = Button(root, text="Send", command=send).grid(row=1, column=1) entry.grid(row=1, column=0)
root.mainloop()```
【问题讨论】: