Как сделать, чтобы при нажатии кнопки выводился не новый холст с текстом, а чтобы текст заменял предыдущий?

     [появляется новый холст с новым скролом][1]```canvas_text = tk.Canvas(f3_text, width=500)
        scroll_canv = tk.Scrollbar(f3_text, orient=tk.VERTICAL)
        scroll_canv.pack(side=tk.RIGHT, fill=tk.Y)
        scroll_canv.config(command=canvas_text.yview)
        canvas_text.config(yscrollcommand=scroll_canv.set)
        canvas_text.pack()
        canvas_text.delete('all')
        canvas_text.create_text(300, 600,
                                text=qq, width=200)

        canvas_text.update_idletasks()
        canvas_text.configure(scrollregion=canvas_text.bbox("all"))```

Ответы (1 шт):

Автор решения: Tester

Создаете кнопку, прописываете функцию для неё - внутри функции очищаете канвас и создаете новый текст. Затем связываете функцию и кнопку.

import tkinter as tk


def change_text():  # функция для кнопки
    canvas_text.delete('all')  # очищаем канвас
    canvas_text.create_text(300, 600, text='текст после клика', width=200,
                            anchor='nw') # создаем новый текст


    f3_text = tk.Tk()
    qq = 'текст до клика'
    canvas_text = tk.Canvas(f3_text, width=500)
    scroll_canv = tk.Scrollbar(f3_text, orient=tk.VERTICAL)
    scroll_canv.pack(side=tk.RIGHT, fill=tk.Y)
    scroll_canv.config(command=canvas_text.yview)
    canvas_text.config(yscrollcommand=scroll_canv.set)
    canvas_text.pack(padx=100)
    canvas_text.create_text(300, 600, text=qq, width=200, anchor='nw')
    canvas_text.update_idletasks()
    canvas_text.configure(scrollregion=canvas_text.bbox("all"))
    button = tk.Button(command=change_text, text='сменить текст')  # создаём кнопку
    button.pack()  # размещаем кнопку в окне
    f3_text.mainloop()
→ Ссылка