Создаем простое приложение, способное находить объекты на изображении по их цвету…
Устанавливаем дополнительные компоненты OpenCV для получения расширенных возможностей. А также разрабатываем приложение, способное находить фиксированные объекты на изображениях с помощью алгоритмов SURF и FLANN…
Продолжаем знакомство с OpenCV. В этот раз выполним установку этой библиотеки под Windows. Кроме того, создадим тестовое приложение для получения видео-потока от веб-камеры с помощью модуля OpenCV - VideoCapture…
Выполняем базовую установку OpenCV под Linux и создаем пробное приложение для обнаружения лиц на фотографии…
Вводная статья на тему использования Qt Script. Рассматриваем принцип взаимодействия скрипта с Qt-объектами…
Разработаем с помощью XLib небольшое Linux-приложение, которое выводит для всех запущенных окон заголовки, координаты и размеры…
Создадим Qt-приложение, которое умеет отправлять сообщения по электронной почте с помощью QNetworkAccessManager на основе POST-запросов к REST-службе…
Разрабатываем простое приложение, которое позволяет просматривать содержимое реестра Windows, а также добавлять и убирать записи из него с помощью QSettings…
Рассматриваем базовые принципы использования буфера обмена в Qt-приложениях с помощью QClipboard…
Создаем простое приложение с функцией подсветки результатов поиска на основе QSyntaxHighlighter…
Создаем простой Splash Screen для Qt-приложения с помощью QSplashScreen…
Рассматриваем основные приемы создания иконок в системном трее с помощью QSystemTrayIcon в Qt-приложениях…
Реализуем алгоритм шифрования CAST-128 на C++…
Создаем приложение, поддерживающее функцию авто-дополнения текста для QLineEdit с помощью QCompleter…
Приложения часто выигрывают от применения звуковых эффектов. Поговорим о воспроизведении звуков в Qt-программах с помощью QSound и Phonon…
Создадим простое приложение для выбора и увеличения произвольной области изображения с помощью QGraphicsView и QGraphicsScene, реализовав собственный подкласс QGraphicsItem…
Продолжаем тему, начатую в прошлый раз. Создадим полу-прозрачное окно в Qt, а затем придадим ему нестандартную форму с помощью маски…
Чтобы создать узнаваемое приложение, нужно использовать нестандартное оформление (вспомните различные мультимедийные приложения и плееры). В Qt для этого все есть. О стилях мы поговорим в другой раз, а сейчас реализуем простой виджет с самодельной ст
Рассматриваем типичный вариант использования QLibrary для динамической загрузки библиотек в Qt-приложениях…
Рассматриваем пример использования QNetworkAccessManager для загрузки данных из интернета через GET-запрос…
Предложен простой вариант реализации Прокси-виджета для временной блокировки Ui на основе QStackedWidget…
Рассматриваем простой способ отображения GIF-анимации в Qt с помощью QMovie…
Рассматриваем способ добавления виджетов QWidget в ячейки таблицы QTableWidget на примере кнопок QPushButton…
Решаем задачу чтения больших файлов с диска в Qt с помощью QFile и QThreadPool…
Завершаем черновую реализацию удаленного воспроизведения нажатий клавиш, добавляя поддержку Linux-систем…
Добавляем возможность управления удаленной системой не только мышью, но и с клавиатуры. Пока что для Windows-систем…
Начинаем реализацию Клиента и Сервера. Обеспечиваем трансляцию видео-потока по сети…
Создаем вспомогательную Qt-библиотеку для формирования видео-потока происходящего на экране…
Начинаем новый проект. Создадим упрощенный аналог TeamViewer на Qt…
Пользователь делает меньше ошибок, если его ограничивать. Один из способов достичь этого - использовать Мастер (или Визард). Поэтому не случайно в Qt существует виджет QWizard, о котором мы и поговорим…
Разрабатываем простую архитектуру фильтров изображений в Qt, построенную на паттерне Декоратор…
Хорошим тоном при разработке приложений уже давно стала поддержка нескольких языков. В Qt интернационализация основывается на классе QTranslator. Посмотрим, как использовать его в своих проектах…
Разрабатываем Qt-приложение, которое позволяет загружать изображения в таблицу QTableWidget…
Создаем простое Qt-приложение с возможностью перетаскивания изображений и текста по принципу Drag&Drop…
Рассматриваем решение часто встречающихся задач обработки текста с помощью QRegularExpression в Qt5…
Разработаем простую библиотеку текстовых эффектов для Qt. Особое внимание уделим ООП-проектированию и анализу гибкости архитектуры для подобного проекта…
Диалоговые окна часто раздражают пользователей, если использованы не по назначению. Но иногда они бывают и полезны. Поговорим о создании и использовании модальных и немодальных диалоговых окон в Qt…
В этот раз рассмотрим способ добавления произвольных виджетов в QListWidget…
Поговорим о создании собственных плагинов с помощью Qt…
Коротко о применении QVariant…
Завершаем работу над реализацией тетриса. Речь пойдет о Представлении и Контроллере…
Чтобы тетрис стал именно тетрисом, одной механики мало. Требуется контроль соблюдение правил. Этим мы и займемся…
В этот раз мы посмотрим на динамическую составляющую модели тетриса, которая обеспечивает соблюдение известной нам механики игры…
Продолжаем нашу работу над тетрисом на C++. Продумаем алгоритм обнаружения столкновений, который сильно упростит нам жизнь в дальнейшем…
Разберемся со статическими аспектами игры тетрис. Для этого рассмотрим особенности реализации его Модели…
Давайте немного отдохнем. Займемся разработкой тетриса на C++…
Данные многих приложений удобно отображать в виде списков. В Qt для этой цели предусмотрен виджет QListWidget, примеры использования которого мы и рассмотрим…
Использование таймеров в Qt является тривиальной, но часто необходимой задачей. Рассмотрим типичные примеры использования QTimer…
В Qt имеются удобные средства для сохранения данных в файл. Поговорим о наиболее важных из них: QTextStream и QDataStream…
В Qt предусмотрено множество способов проверки вводимых пользователем данных. Один из таких способов - применение QValidator. Рассмотрим пример его использования…
Регулярные выражения в Qt имеют множество вариантов использования. Узнайте о наиболее важных из них…
Ваше Qt-приложение использует изображения, звуковые эффекты или другие ресурсы? Обезопасьте себя от неосторожных действий пользователя, узнав как прятать эти внешние зависимости внутри бинарных файлов…
Ни одна крупная информационная система не обходится без использования баз данных. О том, как применять их в своих Qt-приложениях вы и узнаете, прочитав эту заметку…
При разработке приложений у вас может возникнуть задача запуска стронней программы. Из этой заметки вы узнаете о наиболее популярных способах использования этой возможности средствами Qt…
Устали от лишних условных конструкций в коде? Хотите узнать о новом для себя приеме ООП? Тогда эта заметка для вас…
Контекстные меню часто позволяют экономить место на форме приложения, поэтому не лишне уметь ими пользоваться. Эта заметка является кратким введением в контекстные меню Qt…
Потребовалось сохранить настройки Qt-приложения, но не знаете как? Есть несколько способов. Рассмотрим один из самых удобных…
Решили организовать возможность импорта/экспорта данных для вашего Qt-приложения? В этой заметке мы познакомимся с одним из способов реализации этих функций…
Хотите узнать новые для себя приемы объектно-ориентированного проектирования? Или решили разобраться с формированием XML-документов в Qt? Тогда и в том, и в другом случае эта заметка может оказаться для вас полезной…
Я думаю, что вы уже неоднократно слышали про гибкие методики разработки программного обеспечения. Одним из важных элементов этих методик является создание тестов до написания самого исходного кода. В этой заметке я расскажу о некоторых плюсах и минус
Достаточно часто добиться повторного использования кода можно с помощью универсальных алгоритмов, одним из входных параметров которых является функция. В этой заметке вы узнаете о том, какие преимущества несет в себе этот прием, а также какими спосо
Эта заметка является кратким введением в концепцию модель-представление в Qt. Мы создадим простое приложение, которое позволит добавлять и удалять данные в табличную модель. При этом все изменения будут мгновенно отображены в соответствующем представ
В Qt, как и во многих других SDK, предусмотрена очень удобная и весьма функциональная система компоновки виджетов с помощью лейаутов. Однако бывают случаи, когда возникает необходимость расположить один виджет над другим в обход системы компоновки. Н
Вам потребовалось отобразить индикатор прогресса в табличном представлении вашего Qt-приложения? О том, как это сделать, вы узнаете прочитав эту заметку…
Эта заметка представляет собой краткое введение в принципы создания веб-служб на C++ с помощью gSOAP. Сначала мы разработаем свой простой протокол веб-службы, а затем реализуем сервер и клиент на С++, которые смогут обмениваться сообщениями по сети ч
В этой заметке мы посмотрим на то, как с помощью QtConcurrent можно легко увеличить скорость алгоритма обработки изображения в четыре раза…
QtSDK предоставляет нам множество удобных инструментов для разработки многопоточного кода. А модель сигналов и слотов многократно упрощает их использование и в большинстве случаев берет на себя вопросы синхронизации. В этой заметке мы рассмотрим неск
Вам нравятся сигналы и слоты в Qt? А хотели бы вы пользоваться ими для связи ваших приложений по сети? Для этого существует библиотека LibQxt. О ней и пойдет речь в этой заметке…
Рано или поздно любой разработчик программного обеспечения приходит к необходимости осмысленного продумывания и организация структуры своих проектов. В этой заметке я хочу рассказать о структуре, которую применяю сам при создании Qt-приложений на язы