Введение Одна из главных болей шаблонного программирования в C++ — нечитаемые сообщения об ошибках, когда шаблон используется с неподходящим типом. До C++20 единственным способом ограничить допустимые типы и…
Введение В проектах на Qt разработчик неизбежно сталкивается с выбором: использовать собственные умные указатели Qt (QSharedPointer, QScopedPointer, QPointer) или указатели стандартной библиотеки (std::shared_ptr, std::unique_ptr, std::weak_ptr). Исторически Qt появился…
Введение При переходе от однопоточного кода к многопоточному самая частая ошибка — продолжать использовать обычные контейнеры (QVector, QList, QMap, std::vector) из нескольких потоков без какой-либо синхронизации, считая их…
Архитектурная Ключевой принцип:никаких глобальных include_directories, только target-based linking. Структура проекта Пример использования Boost внутри Qt Будем использовать: FileService.h FileService.cpp MainWindow.h MainWindow.cpp main.cpp CMakeLists.txt (Qt6 + Boost) Что происходит…
Цели архитектуры Qt-проекта Хороший Qt-проект: CMake здесь — не просто билд-система, а средство описания архитектуры. Слоистая структура (Layered Architecture) Типовая схема: Каждый слой — отдельная библиотека. Модульность через…
Этот шаблон проекта позволяет легко переключаться между различными фреймворками тестирования в C++/Qt: Структура проекта (предполагаемая) Шаблон Как собрать
Qt поддерживает встроенное тестирование через QTest, но при разработке на C++ часто возникает необходимость использовать внешние фреймворки: Google Test, Catch2, Doctest, Boost.Test. В этой статье сравниваются и описываются…
Что это за флаг? QT_DISABLE_DEPRECATED_BEFORE — это предпроцессорный флаг, позволяющий отключать устаревшие API Qt, объявленные до определённой версии. Он активно используется при подготовке проектов к переходу на новую…
Qt — это мощный кроссплатформенный фреймворк для разработки GUI и многоплатформенных приложений на C++. С выходом Qt 6 разработчики столкнулись с вопросом: чем он отличается от Qt 5…
Современный подход к функциональному программированию Современный язык программирования C++ предлагает множество инструментов для написания лаконичного, эффективного и выразительного кода. Одним из таких инструментов являются лямбда-выражения и функторы, которые…
обновлено
Нравится qthelper.ru? 💚
Сайт живёт без пейволов и обязательной подписки. Если статьи помогают вам в работе — поддержите проект.