可以给这段代码写一个gui界面吗
时间: 2023-07-14 11:14:29 浏览: 40
当然可以,以下是一个简单的GUI界面示例代码:
```python
import tkinter as tk
from tkinter import scrolledtext
from threading import Thread
import chitgpt
class ChatBotGUI:
def __init__(self, root):
self.root = root
self.root.title("ChitGPT Chatbot")
self.root.geometry("500x600")
self.create_widgets()
self.chatbot = chitgpt.ChatBot()
def create_widgets(self):
self.chat_history = scrolledtext.ScrolledText(self.root, width=60, height=25)
self.chat_history.pack(padx=10, pady=10)
self.user_input = tk.Entry(self.root, width=60)
self.user_input.pack(padx=10, pady=10)
self.user_input.bind("<Return>", self.send_message)
self.send_button = tk.Button(self.root, text="Send", command=self.send_message)
self.send_button.pack(padx=10, pady=10)
def send_message(self, event=None):
message = self.user_input.get()
self.chat_history.insert(tk.END, "You: " + message + "\n")
self.user_input.delete(0, tk.END)
Thread(target=self.get_response, args=(message,)).start()
def get_response(self, message):
response = self.chatbot.get_response(message)
self.root.after(500, self.show_response, response)
def show_response(self, response):
self.chat_history.insert(tk.END, "Bot: " + str(response) + "\n")
root = tk.Tk()
chatbot_gui = ChatBotGUI(root)
root.mainloop()
```
这个GUI界面包括一个聊天历史记录框、一个文本框和一个发送按钮。用户在文本框中输入消息,按下回车或点击发送按钮,程序就会将用户的消息显示在聊天历史记录框中,同时调用ChitGPT模型获取AI的回复,并将回复显示在聊天历史记录框中。
需要注意的是,由于模型获取回复的过程比较耗时,我们在获取回复之后使用`self.root.after()`方法来延迟500毫秒,再将回复显示在聊天历史记录框中,这样可以避免界面卡顿。