2025-03-26 14:42:03 +03:00

66 lines
2.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import sys
from pathlib import Path
def wrap_text(text, max_width, char_width=7):
words = text.split()
lines = []
current_line = []
current_width = 0
for word in words:
word_width = len(word) * char_width
if current_width + word_width + char_width > max_width:
lines.append(" ".join(current_line))
current_line = [word]
current_width = word_width
else:
current_line.append(word)
current_width += word_width + char_width # Добавляем пробел
if current_line:
lines.append(" ".join(current_line))
return lines
def base_path():
# PyInstaller creates a temp folder and stores path in _MEIPASS
try:
# noinspection PyUnresolvedReferences,PyProtectedMember
return Path(sys._MEIPASS).resolve()
except AttributeError:
return Path().resolve()
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("<Left>") # Симулируем нажатие стрелки влево
def on_ctrl_right(entry, event):
# Перемещаем курсор на одно слово вправо
entry.event_generate("<Right>") # Симулируем нажатие стрелки вправо
def reg_ctrl_events(entry):
# Привязка горячих клавиш с использованием lambda
entry.bind("<Control-c>", lambda event: on_ctrl_c(entry, event)) # Копирование в буфер
entry.bind("<Control-v>", lambda event: on_ctrl_v(entry, event)) # Вставка из буфера
entry.bind("<Control-a>", lambda event: on_ctrl_a(entry, event)) # Выделение всего текста
entry.bind("<Control-Left>", lambda event: on_ctrl_left(entry, event)) # Перемещение курсора влево
entry.bind("<Control-Right>", lambda event: on_ctrl_right(entry, event)) # Перемещение курсора вправо