Как сделать, чтобы при нажатии кнопки выводился не новый холст с текстом, а чтобы текст заменял предыдущий?
[появляется новый холст с новым скролом][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()