Python. Как отключить выделение текста в ScrolledText?
from tkinter import *
from tkinter.scrolledtext import ScrolledText
root = Tk()
root.geometry("400x200")
text_1 = ScrolledText(width=48, height=6, font=('Arial', 10, 'bold'), wrap=WORD, state=NORMAL)
text_1.insert('1.0', 'Текст в этом поле не должен реагировать на попытку выделения')
text_1.place(x=10, y=10, anchor='nw')
text_1.config(state=DISABLED)
root.mainloop()
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Нашел вариант через отключение биндингов:
text_1.bindtags((str(text_1), str(root), "all"))
А text_1.config(state=DISABLED) можно удалить
UPD.
Добавил игнорирование события перемещения мышки и клика мышки:
text_1.config(state=DISABLED)
text_1.bind('<Motion>', lambda event: 'break')
text_1.bind('<Button>', lambda event: 'break')
Весь код:
from tkinter import *
from tkinter.scrolledtext import ScrolledText
root = Tk()
root.geometry("400x200")
text_1 = ScrolledText(width=48, height=6, font=('Arial', 10, 'bold'), wrap=WORD, state=NORMAL)
text_1.insert('1.0', 'Текст в этом поле не должен реагировать на попытку выделения' * 10)
text_1.place(x=10, y=10, anchor='nw')
text_1.config(state=DISABLED)
text_1.bind('<Motion>', lambda event: 'break')
text_1.bind('<Button>', lambda event: 'break')
root.mainloop()
Результат:
