с 2013 года · 650+ статей

Статьи и примеры по Qt, C++ и не только

Технический блог для разработчиков: практические разборы, примеры кода и решения типовых задач — без пейволов и обязательной подписки.

Последние статьи

Работа с сетью в Qt

QTcpSocket: подключение к серверу и обработка разрывов соединения

Введение Сетевые соединения — это всегда работа с ненадёжной средой: сервер может быть недоступен, соединение может прерваться в любой момент, а данные приходят не целиком и не сразу.…

Работа с сетью в Qt

QTcpServer: пишем простой многоклиентский сервер на Qt

Введение QTcpServer — серверный аналог QTcpSocket: он принимает входящие подключения и для каждого клиента создаёт отдельный объект QTcpSocket. В отличие от классических серверов на блокирующих сокетах с потоком…

Работа с сетью в Qt

QNetworkAccessManager: GET/POST-запросы и обработка JSON-ответа

Введение Большинство современных Qt-приложений взаимодействуют с веб-сервисами через REST API, обмениваясь данными в формате JSON. Основной инструмент для этого в Qt — QNetworkAccessManager, который умеет выполнять HTTP-запросы асинхронно,…

Работа с сетью в Qt

WebSocket в Qt: QWebSocket и QWebSocketServer на практике

Введение WebSocket — протокол для полнодуплексной связи в реальном времени между клиентом и сервером, широко используемый в чатах, биржевых тикерах и интерактивных дашбордах. В Qt поддержка WebSocket реализована…

Работа с сетью в Qt

SSL/TLS в Qt: настройка QSslSocket и работа с сертификатами

Введение Любой сетевой обмен, который пересекает недоверенную сеть, должен быть зашифрован — это требование сегодня является базовым, а не опциональным. В Qt шифрование TCP-соединений реализуется через QSslSocket, наследника…

Работа с сетью в Qt

QHttpServer: легковесный REST-сервер на Qt без сторонних фреймворков

Введение Когда нужно быстро поднять HTTP API внутри Qt-приложения — например, для локального управления десктопным приложением через браузер или для тестового стенда — необязательно подключать тяжёлые сторонние фреймворки.…

Различные статьи по Qt и c++

Смотреть все статьи →
Различные статьи по Qt и c++

Что изменилось в Qt6: обзор ключевых отличий от Qt5 для практикующего разработчика

Qt6 — первое крупное обновление основной версии фреймворка за много лет. В отличие от перехода Qt4 → Qt5, который был довольно болезненным, Qt6 спроектирован так, чтобы упростить поддержку…

Различные статьи по Qt и c++

Замена устаревших API при переходе на Qt6: таблица соответствий старых и новых классов

При миграции с Qt5 на Qt6 значительная часть работы — это механическая замена устаревших классов и методов. Ниже приведена таблица наиболее частых соответствий, а также примеры кода «было/стало»…

Различные статьи по Qt и c++

Кросс-платформенный Qt-проект: общий код для Windows, Linux и macOS — подводные камни

Одно из главных преимуществ Qt — возможность писать единую базу кода для Windows, Linux и macOS. На практике, однако, «однажды написал — везде работает» срабатывает не всегда: различия…

SQL и Qt

QSqlDatabase: подключение к SQLite, MySQL и PostgreSQL из Qt

Введение Модуль Qt SQL предоставляет единый высокоуровневый интерфейс для работы с разными СУБД — SQLite, MySQL, PostgreSQL и другими — через систему драйверов. Это позволяет писать код, который…

SQL и Qt

QSqlQuery и подготовленные запросы: защита от SQL-инъекций в Qt

Введение Формирование SQL-запроса через конкатенацию строк с пользовательским вводом — прямой путь к SQL-инъекции, одной из самых серьёзных и распространённых уязвимостей веб- и десктоп-приложений, работающих с базами данных.…

SQL и Qt

QSqlTableModel и QSqlRelationalTableModel: связка БД с UI без ручного SQL

Введение Для типичной задачи отображения и редактирования таблицы базы данных в табличном виджете Qt предоставляет QSqlTableModel, который автоматически генерирует SQL-запросы для чтения, обновления, вставки и удаления строк, избавляя…

SQL и Qt

Миграции схемы базы данных в Qt-приложении: версионирование и накатывание изменений

Введение По мере развития приложения схема базы данных меняется — добавляются таблицы, столбцы, индексы. Если изменения схемы применяются вручную и бесконтрольно, разные установки приложения у разных пользователей (или…

SQL и Qt

Транзакции в QSqlDatabase: откат изменений при ошибках

Введение Транзакция — группа операций с базой данных, которая должна быть выполнена целиком (commit) или не выполнена вовсе (rollback), без промежуточных, частично применённых состояний. Это критично для операций,…

SQL и Qt

Зачем ORM в Qt-проекте: проблемы прямого SQL и что решает абстракция

Введение Прямая работа с QSqlQuery, разобранная в основном цикле статей про SQL, прекрасно подходит для небольших приложений с несколькими запросами — но по мере роста проекта SQL-строки начинают…

Embedded

Что такое Boot2Qt и когда он нужен

Введение Boot2Qt — коммерческое решение от Qt Company для встраиваемой (embedded) разработки: готовый, оптимизированный embedded Linux образ с предустановленным Qt, инструменты для удалённого развёртывания и отладки прямо из…

Embedded

Подготовка embedded Linux образа с Qt: обзор процесса

Введение Не каждой команде подходит коммерческий Boot2Qt — для полностью самостоятельного контроля над embedded Linux образом часто используется Yocto Project, более гибкий, но и значительно более сложный путь…

Embedded

Оптимизация Qt-приложения под слабое embedded-железо

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

Embedded

Работа без X11/Wayland: eglfs и linuxfb платформенные плагины

Введение Большинство embedded-устройств не запускают полноценную систему рабочих столов с X11 или Wayland — Qt-приложение часто является единственным графическим приложением на устройстве, рисующим прямо в фреймбуфер или напрямую…

Embedded

Сенсорный экран и калибровка ввода на embedded-устройстве

Введение Многие embedded-устройства используют сенсорные экраны как основной способ взаимодействия с пользователем, и в отсутствие полноценной оконной системы (статья 243) обработка касаний требует отдельной настройки на уровне Qt…

Embedded

Обновление прошивки (OTA) на embedded Linux с Qt

Введение Embedded-устройства, развёрнутые «в поле» (у конечных пользователей или на производственных площадках), редко имеют физический доступ для ручного обновления — необходим механизм обновления «по воздуху» (Over-The-Air, OTA), позволяющий…

Рубрики