Популярные статьи

Готовые методы реализаций

Реализация очереди задач с приоритетами на Qt

Введение Когда фоновые задачи в приложении неравнозначны по важности — например, обработка пользовательского ввода важнее фоновой синхронизации с сервером — простая FIFO-очередь не подходит: важная задача может застрять…

Arduino

Сравнение программ для работы с Arduino: Arduino IDE, PlatformIO, Qt Creator с расширениями

Введение Перед тем как писать прошивку для Arduino, нужно выбрать инструмент разработки. В статье сравним три основных варианта: классическую Arduino IDE, более продвинутый PlatformIO (как расширение для VS…

JSON

Потоковый разбор больших JSON-файлов: альтернативы QJsonDocument для экономии памяти

Введение QJsonDocument::fromJson() загружает и разбирает весь JSON-документ в памяти целиком, что прекрасно работает для типичных ответов API размером в килобайты, но становится проблематичным для очень больших файлов —…

Готовые методы реализаций

Готовый helper для конвертации единиц измерения (метры/футы, КБ/МБ и т.п.)

Введение Приложения, работающие с физическими величинами или объёмами данных, регулярно нуждаются в конвертации единиц измерения — расстояния, объёмов памяти, температуры. Разрозненные magic-числа конвертации, разбросанные по коду (value *…

Графики

Real-time графики в Qt: обновление данных на лету без просадки FPS

Введение Графики, отображающие данные в реальном времени — телеметрию датчиков, биржевые котировки, аудио-визуализацию — предъявляют принципиально иные требования к производительности, чем статичные графики: данные нужно обновлять десятки раз…

Arduino

Оптический разрывной датчик и ИК-модуль обхода препятствий для робота

Введение Оптический разрывной датчик (slot/break-beam sensor) и комплексный модуль «умная машинка, датчик препятствий, инфракрасный датчик, фотоэлектрический переключатель» — оба относятся к категории оптических датчиков обнаружения объекта, но с…

Потоки и многопоточность

Producer-Consumer на QWaitCondition: классический паттерн в Qt-коде

Введение Паттерн «производитель-потребитель» — один из самых распространённых в многопоточном программировании: один или несколько потоков генерируют данные (производители) и помещают их в общую очередь, а другой поток (или…

Система плагинов

Архитектура plugin-based приложения: пример расширяемого редактора

Введение В заключительной статье цикла соберём вместе концепции из предыдущих девяти статей в цельную архитектуру — спроектируем расширяемый текстовый редактор, где функциональность форматирования, экспорта и подсветки синтаксиса реализована…