Демонстрация работы Youtube
FileProcessorThread- класс, наследующий QThread, для чтения и обработки файла в фоновом потоке;FileProcessor- класс, управляющий и предоставляющий интерфейс для взаимодействия с QML;Main.qml- основной файл QML, описывающий пользовательский интерфейс;WordHistogram.qml- файл QML, описывающий элемент интерфейса "Гистограмма".
- Получение от диалогового окна пути до текстового файла
- Отправка пути до файла до
FileProcessorThreadдля последующей обработки - По нажатию на кнопку "Старт", вызывается метод
startProcessing()с последующим запуском потока чтения и обработки файла. - Файл считывается построчно. Сплитится строка по регулярному выражения
\W+. Инкрементируются счетчики для слов, хранящихся вQMap. Поддерживается вектор, состоящий из топ-15 слов. - Вектор из топ-15 слов отправляется на отрисовку.
Для реализации возможности приостановки и остановки потока, наследовался от QThread, перегрузил виртуальный метод run() и воспользовался QWaitCondition.
P.S. Обычно так не делаю. Использую QObject::moveToThread().

