Python. Как отключить выделение текста в ScrolledText?

Рейтинг: 1Ответов: 1Опубликовано: 11.01.2023
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Принят

Нашел вариант через отключение биндингов:

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()

Результат:

введите сюда описание изображения