Qt и QML: с чего начать? Первое приложение за 10 минут
Qt — это кроссплатформенный фреймворк для разработки приложений под Windows, Linux, macOS, Android и iOS. Исторически Qt ассоциировался с Widgets (QWidget), однако современный стек Qt ориентирован на QML…
Как подключить QML к C++: объявляем свой первый контекст и объект
В первом материале мы создали минимальное Qt Quick-приложение и разобрались, как QML загружается из C++. Следующий логичный шаг — связать QML с C++-логикой: передать объект в QML, вызвать…
Настройка CMake для проектов с CUDA
Как CMake работает с CUDA С версии 3.18 CMake имеет нативную поддержку CUDA: Минимальный CUDA-проект Compute Capability Или: Статическая CUDA-библиотека CUDA + Qt Qt UI + GPU backend:…
Руководство по тестированию QML-приложений: От unit-тестов до интеграционного тестирования UI
Введение: Почему тестирование QML требует особого подхода QML (Qt Modeling Language) представляет собой уникальный гибрид декларативного и императивного программирования, что создает особые вызовы для тестирования. В отличие от…
Cmake используем внешние библиотеки (на примере OpenSSL)
Часто требуется использовать сторонние библиотеки. CMake умеет их искать. Способ 1: find_package() (предпочтительный, если пакет поддерживает CMake) Многие библиотеки поставляются с CMake-файлами поиска. Предположим, нам нужен OpenSSL для хеширования. Упрощенный CMakeLists.txt:…
Cmake полезные команды и переменные для начинающих
Часто используемые команды message() — аналог printf для отладки. set() — задать переменную list() — работать со списками if() / else() / endif() — условные операторы Полезные встроенные переменные CMAKE_BUILD_TYPE — тип сборки (Debug, Release,…
QML Profiler: Анализ производительности QML-приложений
Введение QML позволяет быстро создавать декларативные, визуально насыщенные интерфейсы. Однако с ростом сложности сцены, количества биндингов, анимаций и JavaScript-логики могут появляться: Для диагностики этих проблем в составе Qt…
Воспроизведение видео: QVideoWidget/QML VideoOutput, потоковое видео
Введение Аудио воспроизводится «невидимо» — для видео нужен дополнительный компонент, отображающий декодированные видеокадры на экране. В этой статье разберём QVideoWidget для классических Qt Widgets приложений и VideoOutput для…
QSemaphore vs QMutex: разница и типичные сценарии использования
Введение QMutex и QSemaphore — два базовых примитива синхронизации в Qt, и начинающие разработчики иногда путают, когда применять каждый из них. Если упростить: мьютекс защищает критическую секцию от…