-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
76 lines (59 loc) · 2.72 KB
/
Copy pathapp.py
File metadata and controls
76 lines (59 loc) · 2.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from tkinter import *
from chat import get_response, bot_name
BG_GRAY = '#ABB2B9'
BG_COLOR = '#17202A'
TEXT_COLOR = '#EAECEE'
FONT = 'Helvetica 14'
FONT_BOLD = 'Helvetica 13 bold'
class ChatApplication:
def __init__(self):
self.window = Tk()
self._setup_main_window()
def run(self):
self.window.mainloop()
def _setup_main_window(self):
self.window.title("ZapCaf")
self.window.resizable(width=False, height=False)
self.window.configure(width=470, height=550, bg=BG_COLOR)
head_label =Label(self.window,bg=BG_COLOR,fg=TEXT_COLOR,text='WELCOME',font=FONT_BOLD,pady=10)
head_label.place(relwidth=1)
# tiny divider
line = Label(self.window,width=450,bg=BG_GRAY)
line.place(relwidth=1,rely=0.07,relheight=0.012)
self.text_widget = Text(self.window,width = 20,height=2,bg=BG_COLOR,fg=TEXT_COLOR,font = FONT,padx = 5,pady = 5)
self.text_widget.place(relheight=0.745,relwidth=1,rely=0.08)
self.text_widget.configure(cursor="arrow" ,state=DISABLED)
# scroll bar
scrollbar = Scrollbar(self.text_widget)
scrollbar.place(relheight=1,relx=0.974,)
scrollbar.configure(command=self.text_widget.yview)
# bottom-level
bottom_label = Label(self.window,bg=BG_GRAY,height = 80)
bottom_label.place(relwidth=1,rely=0.825)
# message entry box
self.msg_entry = Entry(bottom_label,bg='#2C3E50',fg=TEXT_COLOR,font=FONT)
self.msg_entry.place(relwidth=0.74,relheight=0.06,rely=0.008,relx=0.011)
self.msg_entry.focus()
self.msg_entry.bind("<Return>",self._on_enter_pressed)
#send button
send_button = Button(bottom_label,text="Send" ,font=FONT_BOLD,width = 20,bg=BG_GRAY,command=lambda:self._on_enter_pressed(None))
send_button.place(relx=0.77,rely=0.008,relheight=0.06,relwidth=0.22)
def _on_enter_pressed(self,event):
msg = self.msg_entry.get()
self._insert_message(msg,"You")
def _insert_message(self,msg,sender):
if not msg:
return
self.msg_entry.delete(0,END)
msg1 = f"{sender} : {msg}\n\n"
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)}\n\n"
self.text_widget.configure(state= NORMAL)
self.text_widget.insert(END,msg2)
self.text_widget.configure(state=DISABLED)
self.text_widget.see(END)
if __name__ == "__main__":
app = ChatApplication()
app.run()