Самый простой способ - заменить текстовые привязки по умолчанию, которые поддерживают выделение, чтобы они ничего не делали.Есть несколько способов сделать это: используя теги привязки, вы можете удалить все привязки по умолчанию или удалить привязки только к подмножеству привязок по умолчанию.
Удаление всех привязок по умолчанию
Всепривязки на виджетах - включая привязки по умолчанию - связаны с тегами привязки (также называемыми «привязками»).Тег привязки для текстового виджета - «Текст», и все привязки по умолчанию для текстового виджета связаны с этим тегом.Если вы удалите этот тег привязки, вы удалите все привязки, специфичные для текста.
Теги привязки по умолчанию для любого виджета - это кортеж строкового представления виджета, внутреннего класса виджетов (в данном случае, «Текст»)."), внутреннее имя окна верхнего уровня (в данном случае root) и специальный тег" all ".
В следующем примере мы изменяем теги привязки, чтобы «Текст» не включался, эффективно удаляя все привязки по умолчанию для текстового виджета:
import tkinter as tk
root = tk.Tk()
text = tk.Text(root)
text.bindtags((str(text), str(root), "all"))
Удаление определенных привязок
Если вы предпочитаете оставить некоторые привязки по умолчанию, вы можете заменить только те, которые вам не нужны.Вы делаете это, создавая свои собственные привязки, и эти привязки возвращают строку «break».Это специальное возвращаемое значение указывает tkinter прекратить обработку события в дальнейшем.
Например, чтобы не допустить двойного щелчка при выборе слова под курсором, вы можете сделать это:
text.bind("<Double-1>", lambda event: "break")
Недостатком этого подхода является то, что вы должны выяснить, какие все привязки связаны с механизмом выбора.С другой стороны, это дает вам полный контроль над тем, что делает каждое нажатие клавиши или кнопки.