Я работал над чат-ботом в tkinter и использовал это, { ссылка } в качестве отправной точки для моего кода. Я хочу иметь возможность добавлять больше речевых пузырей (я могу сделать только три), а затем прокручивать их.
Как бы я смог это сделать? 1010 *?
Мой код:
from tkinter import *
root = Tk()
frame = Frame(root,width=200,height=200)
frame.grid(row=0,column=0,columnspan=2)
canvas = Canvas(frame,bg="white",width=300,height=300,scrollregion=(0,0,500,500))
canvas.pack(side=LEFT,expand=True,fill=BOTH)
vbar = Scrollbar(frame,orient="vertical",command=canvas.yview)
vbar.pack(side=RIGHT,fill=Y)
canvas.configure(yscrollcommand=vbar.set)
bubbles = []
class BotBubble:
def __init__(self,master,message=""):
self.master = master
self.frame = Frame(master,bg="light grey")
self.i = self.master.create_window(90,160,window=self.frame)
Label(self.frame, text=message,font=("Helvetica", 9),bg="light grey").grid(row=1,column=0)
root.update_idletasks()
self.master.create_polygon(self.draw_triangle(self.i),fill="light grey",outline="light grey")
def draw_triangle(self,widget):
x1, y1, x2, y2 = self.master.bbox(widget)
return x1, y2 - 8, x1 - 10, y2 + 5, x1, y2
def send_message(event):
if bubbles:
canvas.move(ALL, 0, -65)
a = BotBubble(canvas,message=entry.get())
bubbles.append(a)
entry = Entry(root,width=100)
entry.grid(row=1,column=0)
entry.bind("<Return>",send_message)
root.mainloop()