Введение Сетевые соединения — это всегда работа с ненадёжной средой: сервер может быть недоступен, соединение может прерваться в любой момент, а данные приходят не целиком и не сразу.…
Введение QTcpServer — серверный аналог QTcpSocket: он принимает входящие подключения и для каждого клиента создаёт отдельный объект QTcpSocket. В отличие от классических серверов на блокирующих сокетах с потоком…
Введение Большинство современных Qt-приложений взаимодействуют с веб-сервисами через REST API, обмениваясь данными в формате JSON. Основной инструмент для этого в Qt — QNetworkAccessManager, который умеет выполнять HTTP-запросы асинхронно,…
Введение WebSocket — протокол для полнодуплексной связи в реальном времени между клиентом и сервером, широко используемый в чатах, биржевых тикерах и интерактивных дашбордах. В Qt поддержка WebSocket реализована…
Введение Любой сетевой обмен, который пересекает недоверенную сеть, должен быть зашифрован — это требование сегодня является базовым, а не опциональным. В Qt шифрование TCP-соединений реализуется через QSslSocket, наследника…
Введение Когда нужно быстро поднять HTTP API внутри Qt-приложения — например, для локального управления десктопным приложением через браузер или для тестового стенда — необязательно подключать тяжёлые сторонние фреймворки.…
Переход с Qt5 на Qt6 — это не просто смена номера версии в файле сборки. Qt6 принёс изменения в систему сборки (переход на CMake как основной инструмент), переработку…
Qt6 — первое крупное обновление основной версии фреймворка за много лет. В отличие от перехода Qt4 → Qt5, который был довольно болезненным, Qt6 спроектирован так, чтобы упростить поддержку…
Qt Quick 3D — это декларативный модуль для построения 3D-сцен на QML, появившийся ещё в Qt 5.15 в техническом превью и получивший полноценную поддержку в Qt6. В отличие…
При миграции с Qt5 на Qt6 значительная часть работы — это механическая замена устаревших классов и методов. Ниже приведена таблица наиболее частых соответствий, а также примеры кода «было/стало»…
Qt позволяет писать кросс-платформенные мобильные приложения на C++/QML с единой базой кода для Android и iOS. В этой статье рассмотрим настройку окружения для сборки под Android и создадим…
Одно из главных преимуществ Qt — возможность писать единую базу кода для Windows, Linux и macOS. На практике, однако, «однажды написал — везде работает» срабатывает не всегда: различия…
Введение Модуль Qt SQL предоставляет единый высокоуровневый интерфейс для работы с разными СУБД — SQLite, MySQL, PostgreSQL и другими — через систему драйверов. Это позволяет писать код, который…
Введение Формирование SQL-запроса через конкатенацию строк с пользовательским вводом — прямой путь к SQL-инъекции, одной из самых серьёзных и распространённых уязвимостей веб- и десктоп-приложений, работающих с базами данных.…
Введение Для типичной задачи отображения и редактирования таблицы базы данных в табличном виджете Qt предоставляет QSqlTableModel, который автоматически генерирует SQL-запросы для чтения, обновления, вставки и удаления строк, избавляя…
Введение По мере развития приложения схема базы данных меняется — добавляются таблицы, столбцы, индексы. Если изменения схемы применяются вручную и бесконтрольно, разные установки приложения у разных пользователей (или…
Введение Транзакция — группа операций с базой данных, которая должна быть выполнена целиком (commit) или не выполнена вовсе (rollback), без промежуточных, частично применённых состояний. Это критично для операций,…
Введение Прямая работа с QSqlQuery, разобранная в основном цикле статей про SQL, прекрасно подходит для небольших приложений с несколькими запросами — но по мере роста проекта SQL-строки начинают…
Введение Boot2Qt — коммерческое решение от Qt Company для встраиваемой (embedded) разработки: готовый, оптимизированный embedded Linux образ с предустановленным Qt, инструменты для удалённого развёртывания и отладки прямо из…
Введение Не каждой команде подходит коммерческий Boot2Qt — для полностью самостоятельного контроля над embedded Linux образом часто используется Yocto Project, более гибкий, но и значительно более сложный путь…
Введение Embedded-устройства часто работают на значительно более слабом железе, чем десктоп или даже современный смартфон — медленный процессор без аппаратного ускорения графики или с ограниченной GPU, мало оперативной…
Введение Большинство embedded-устройств не запускают полноценную систему рабочих столов с X11 или Wayland — Qt-приложение часто является единственным графическим приложением на устройстве, рисующим прямо в фреймбуфер или напрямую…
Введение Многие embedded-устройства используют сенсорные экраны как основной способ взаимодействия с пользователем, и в отсутствие полноценной оконной системы (статья 243) обработка касаний требует отдельной настройки на уровне Qt…
Введение Embedded-устройства, развёрнутые «в поле» (у конечных пользователей или на производственных площадках), редко имеют физический доступ для ручного обновления — необходим механизм обновления «по воздуху» (Over-The-Air, OTA), позволяющий…