- Проверка орфографии — выделение слов, отсутствующих в словаре, красной волнистой линией
- Контекстные исправления — клик по слову с ошибкой открывает меню с вариантами замены
- Автоисправление — кнопка «Исправить» автоматически заменяет все ошибки первым вариантом
- Отмена изменений — возможность вернуться к исходному тексту после проверки или исправлений
- Поддержка файлов — загрузка текста из .txt файлов с автоматической обработкой UTF-8
- Смена темы — светлая и тёмная темы оформления
- Работа с буфером — копирование текста и сохранение в файл
- Горячие клавиши — стандартные сочетания для работы с текстом
После сборки и запуска программа выполнит:
- Асинхронную загрузку словаря
- Автоматический переход к основному интерфейсу после загрузки
| Кнопка | Действие |
|---|---|
| Проверить | Запускает проверку орфографии всего текста |
| Исправить | Автоматически заменяет все найденные ошибки первым подходящим вариантом |
| Отменить изменения | Возвращает текст к состоянию до последней проверки или исправления |
| Очистить | Полностью очищает поле ввода |
| Копировать | Копирует текст в буфер обмена |
| Сохранить | Сохраняет текст в файл (.txt) |
- Нажмите левой кнопкой мыши на слово, подчёркнутое красным
- В появившемся меню:
- Выберите один из предложенных вариантов исправления
- Или выберите «Отметить как правильное», чтобы добавить слово в список игнорируемых
⚠️ Слова, добавленные в игнорируемые, запоминаются только на время сеанса работы программы.
- С клавиатуры — текст вводится непосредственно в поле редактора
- Из файла — выбор текстового файла (.txt) с диска с последующей загрузкой
- CMake 3.10 или выше
- Qt6 (Core, Widgets)
- GTest (для тестов)
- Компилятор с поддержкой C++11 и выше
git clone https://github.com/AlexeyL54/spell_checker.git
cd spell_checker
mkdir build
cd build
cmake ..
make
./SpellCheckerПримечание: Путь к словарю настроен на
../vocab/russian-words/russian.txt. При необходимости измените путь вMainWindow.cpp.
SpellChecker/
├── src/
│ ├── back/
│ │ └── vocab.cpp/hpp # Загрузка словаря, поиск ошибок, предложения
│ └── front/
│ ├── MainWindow.cpp/hpp # Главное окно приложения
│ ├── InputPage.cpp/hpp # Страница ввода текста
│ ├── TextEditWithSpellCheck.cpp/hpp # Кастомное текстовое поле
│ ├── ThemeManager.cpp/hpp # Управление темами
│ ├── StyleManager.cpp/hpp # Стилизация интерфейса
│ ├── LoadingPage.cpp/hpp # Страница загрузки
│ └── InstructionText.hpp # Текст инструкции
├── vocab/
│ └── russian-words/ # Словарь русских слов
├── tests/ # Тесты
├── CMakeLists.txt # Конфигурация сборки
└── main.cpp # Точка входа
- Индексация триграмм — для каждого слова в словаре строятся все возможные триграммы (перекрывающиеся последовательности из 3 символов) с маркерами начала и конца
- Поиск кандидатов — из индекса выбираются слова, имеющие не менее 2 совпадающих триграмм
- Расстояние Левенштейна — для кандидатов вычисляется минимальное количество операций вставки, удаления и замены
- Сортировка — кандидаты сортируются по возрастанию расстояния и длине слова
- Результат — возвращаются до 5 лучших вариантов исправления
- Фреймворк: Qt6 (QtCore, QtWidgets)
- Кодировка: UTF-8 (поддержка кириллицы)
- Сборщик: CMake
Программа имеет встроенную инструкцию — нажмите на кнопку с вопросительным знаком «?» в верхнем левом углу для получения подробной справочной информации.
| Сочетание | Действие |
|---|---|
Ctrl+C |
Копировать выделенный текст |
Ctrl+X |
Вырезать выделенный текст |
Ctrl+V |
Вставить из буфера обмена |
Ctrl+A |
Выделить весь текст |
Проект включает интеграционные тесты для проверки работы:
- Vocabulary — загрузка словаря и поиск исправлений
Запуск тестов:
cd tests/build
cmake ..
make
./vocabulary_test- Локализовать приложение
- Добавить возможность интерактивного выбора словарей, языков
- Добавить навигацию по словам с ошибкой
- Добавить другие цветовые темы
Словарь взят из репозитория russian-words (лицензия MIT).





