這是一個大學咨詢聊天機器人,我想獲得用戶的姓名并顯示在聊天視窗中。

在輸出視窗中,我想要學生的名字而不是 "學生"。 我只添加了一些我認為重要的代碼。如果你想要完整的代碼,請在下面評論,我會編輯這個問題
def _on_enter_pressed(self, event):
msg = self.msg_entry.get()
self._insert_message(msg,"Student")
def _insert_message(self, msg, sender):
if not msg:
return not msg: return
self.msg_entry.delete(0, END)
msg1 = f"{sender}: {msg}.
"/span>
self.text_widget.configure(state=NORMAL)
self.text_widget.insert(END, msg1)
self.text_widget.configure(state=DISABLED)
msg2 = f"{bot_name}: {get_response(msg)}.
"/span>
self.text_widget.configure(state=NORMAL)
self.text_widget.insert(END, msg2)
self.text_widget.configure(state=DISABLED)
self.text_widget.see(END)
uj5u.com熱心網友回復:
正如其他兩位評論者提到的:
studentName = self.student_entry.get()
self._insert_message(msg,studentName)
其中student_entry是一個tk.entry()。但是你可以從代碼中的其他地方獲得studentName。
uj5u.com熱心網友回復:
我不確定你想要什么樣的用戶界面,但有一種方法可以通過使用tkinter中包含的一個簡單對話框來獲得用戶的輸入。下面是你的代碼的修改版本,其中包括添加一個Button來呼叫一個,獲得輸入的字串,并使用它。我已經用大寫的# ADDED和# CHANGED注釋指出了所做的修改。
from tkinter import *
from tkinter.simpledialog import askstring # ADDED
from chat import get_response, bot_name
import webbrowser
class ChatApplication。
def __init__(self):
self.window = Tk()
self._setup_main_window()
self.sname = "Anonymous" # ADDED[/span
#Icon[/span
self.window.wm_iconbitmap("DSU.ico"/span>)
def run(self)。
self.window.mainloop()
def _setup_main_window(self):
self.window.title("DSU聊天機器人")
self.window.resizable(width=False, height=False)
self.window.configure(width=1000, height=600)
self.canvas = Canvas(self. window,bg="#475F47",height = 600,width = 1000,bd = 0, highlightthickness = 0,
relief = "ridge")
self.canvas.place(x = 0, y = 0)
#Bot Image[/span]。
global bot_img
bot_img = PhotoImage(file=f "college.png")
bot = self.canvas.create_image(500,300, image=bot_img)
#DSU的標志。
global dsu_logo
dsu_logo = PhotoImage(file=f "DSU.png"/span>)
dsu = self.canvas.create_image(490,90, image=dsu_logo)
#100年的標志。
global centenary_logo
centenary_logo = PhotoImage(file=f "logo.png"/span>)
centenary = self.canvas.create_image(950,100, image=centenary_logo)
#DSU Text[/span]。
self.canvas.create_text(
556.0,16.0,anchor="nw",
text="Dayananda Sagar University
"。
fill="#FFFFFF",font=("Revalia",15)
#Text[/span]。
self.canvas.create_text(
650.0,60.0,anchor="nw",
text="Live the Dream!"。
fill="#FFFFFF",font=("Revalia", 13)
#鏈接按鈕。
dsu_link=Label(self.window,bg="#475F47",fg="藍色",text="www.dsu.edu. in",pady=10,cursor="hand2",font=("Revalia", 15)
dsu_link.pack()
dsu_link.bind("<Button-1>",lambda e:
self.callback("https://www.dsu.edu.in/")
dsu_link.place(x=635,y=93, width=198, height=34)
# 輸入名稱按鈕 - ADDED
name_btn = Button(text='Enter your name', command=self._get_sname, bg="#C9EDFF",
fg="blue")
name_btn.place(x=420, y=165)
# text widget[/span
self.text_widget = Text(self.window, width=20, height=2, bg="#222831", fg="#FFFF",
padx=5, pady=5)
self.text_widget.place(x=420,y=192, width=571, height=307)
msg3 = f"{bot_name}: Hey there.Welcome to Dayananda Sagar University
實作夢想!
有什么可以幫助您的嗎?
"/span>
self.text_widget.insert(END,msg3)
self.text_widget.configure(cursor="arrow", state=DISABLED)
# 滾動條1, relx=0.984, width=10)
scrollbar.configure(command=self.text_widget.yview)
#訊息輸入框
self.msg_entry = Entry(self.window, bg="#C9EDFF", font="Abadi")
self.msg_entry.place(x=420,y=515, width=418, height=60)
self.msg_entry.focus()
self.msg_entry.bind("<Return>", self._on_enter_pressed)
#send button;/span>發送按鈕。
send_button = Button(self. window, text="發送", font="Raleway", width=20, bg="#C9EDFF",fg="blue",
command=lambda: self._on_enter_pressed(None)
send_button.place(x=849,y=515, width=107, height=60)
def _get_sname(self)。 # ADDED[/span]。
self.sname = askstring('Input', "你叫什么?")
def _on_enter_pressed(self, event):
msg = self.msg_entry.get()
self._insert_message(msg, self.sname) # CHANGED[/span
def _insert_message(self, msg, sender)。
if not msg:
return not msg: return
self.msg_entry.delete(0, END)
.
.
.
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/319463.html
標籤:

