diff --git a/utils/__init__.py b/utils/__init__.py index ab07856..a693438 100644 --- a/utils/__init__.py +++ b/utils/__init__.py @@ -1,3 +1,3 @@ from . import fonts from .params import Strings, Icons -from .utils import base_path, get_file, wrap_text +from .utils import base_path, get_file, wrap_text, reg_ctrl_events diff --git a/utils/utils.py b/utils/utils.py index ade1e69..a1a5e7e 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -32,3 +32,34 @@ def base_path(): def get_file(filename): return base_path() / "resources" / filename + +def on_ctrl_c(entry, event): + # Копируем текст из поля ввода в буфер обмена + text = entry.get() # Получаем текст из поля ввода + entry.clipboard_clear() # Очищаем буфер обмена + entry.clipboard_append(text) # Добавляем текст в буфер обмена + +def on_ctrl_v(entry, event): + # Вставляем текст из буфера обмена в поле ввода + clipboard_text = entry.clipboard_get() # Получаем текст из буфера обмена + entry.insert("insert", clipboard_text) # Вставляем текст в позицию курсора + +def on_ctrl_a(entry, event): + # Выделяем весь текст в поле ввода + entry.select_range(0, 'end') # Выделяем текст от начала до конца + +def on_ctrl_left(entry, event): + # Перемещаем курсор на одно слово влево + entry.event_generate("") # Симулируем нажатие стрелки влево + +def on_ctrl_right(entry, event): + # Перемещаем курсор на одно слово вправо + entry.event_generate("") # Симулируем нажатие стрелки вправо + +def reg_ctrl_events(entry): + # Привязка горячих клавиш с использованием lambda + entry.bind("", lambda event: on_ctrl_c(entry, event)) # Копирование в буфер + entry.bind("", lambda event: on_ctrl_v(entry, event)) # Вставка из буфера + entry.bind("", lambda event: on_ctrl_a(entry, event)) # Выделение всего текста + entry.bind("", lambda event: on_ctrl_left(entry, event)) # Перемещение курсора влево + entry.bind("", lambda event: on_ctrl_right(entry, event)) # Перемещение курсора вправо