IT Notes

qt-large-file-reading-sample

Создаем простое приложение, способное находить объекты на изображении по их цвету…

qt-large-file-reading-sample

Устанавливаем дополнительные компоненты OpenCV для получения расширенных возможностей. А также разрабатываем приложение, способное находить фиксированные объекты на изображениях с помощью алгоритмов SURF и FLANN…

qt-large-file-reading-sample

Продолжаем знакомство с OpenCV. В этот раз выполним установку этой библиотеки под Windows. Кроме того, создадим тестовое приложение для получения видео-потока от веб-камеры с помощью модуля OpenCV - VideoCapture…

qt-large-file-reading-sample

Выполняем базовую установку OpenCV под Linux и создаем пробное приложение для обнаружения лиц на фотографии…

qt-large-file-reading-sample

Вводная статья на тему использования Qt Script. Рассматриваем принцип взаимодействия скрипта с Qt-объектами…

qt-large-file-reading-sample

Разработаем с помощью XLib небольшое Linux-приложение, которое выводит для всех запущенных окон заголовки, координаты и размеры…

qt-large-file-reading-sample

Создадим Qt-приложение, которое умеет отправлять сообщения по электронной почте с помощью QNetworkAccessManager на основе POST-запросов к REST-службе…

qt-large-file-reading-sample

Разрабатываем простое приложение, которое позволяет просматривать содержимое реестра Windows, а также добавлять и убирать записи из него с помощью QSettings…

qt-large-file-reading-sample

Рассматриваем базовые принципы использования буфера обмена в Qt-приложениях с помощью QClipboard…

qt-large-file-reading-sample

Создаем простое приложение с функцией подсветки результатов поиска на основе QSyntaxHighlighter…

qt-large-file-reading-sample

Создаем простой Splash Screen для Qt-приложения с помощью QSplashScreen…

qt-large-file-reading-sample

Рассматриваем основные приемы создания иконок в системном трее с помощью QSystemTrayIcon в Qt-приложениях…

qt-large-file-reading-sample

Реализуем алгоритм шифрования CAST-128 на C++…

qt-large-file-reading-sample

Создаем приложение, поддерживающее функцию авто-дополнения текста для QLineEdit с помощью QCompleter…

qt-large-file-reading-sample

Приложения часто выигрывают от применения звуковых эффектов. Поговорим о воспроизведении звуков в Qt-программах с помощью QSound и Phonon…

qt-large-file-reading-sample

Создадим простое приложение для выбора и увеличения произвольной области изображения с помощью QGraphicsView и QGraphicsScene, реализовав собственный подкласс QGraphicsItem…

qt-large-file-reading-sample

Продолжаем тему, начатую в прошлый раз. Создадим полу-прозрачное окно в Qt, а затем придадим ему нестандартную форму с помощью маски…

qt-large-file-reading-sample

Чтобы создать узнаваемое приложение, нужно использовать нестандартное оформление (вспомните различные мультимедийные приложения и плееры). В Qt для этого все есть. О стилях мы поговорим в другой раз, а сейчас реализуем простой виджет с самодельной ст

qt-large-file-reading-sample

Рассматриваем простой пример использования идиомы Pimpl в C++…

qt-large-file-reading-sample

Рассматриваем типичный вариант использования QLibrary для динамической загрузки библиотек в Qt-приложениях…

qt-large-file-reading-sample

С помощью gSOAP легко и удобно разрабатывать серверную (да и клиентскую) часть SOAP веб-служб. Однако остается выбор: пойти путем использования механизма CGI на базе веб-сервера или создать автономное Standalone приложение…

qt-large-file-reading-sample

Рассматриваем пример использования QNetworkAccessManager для загрузки данных из интернета через GET-запрос…

qt-large-file-reading-sample

Предложен простой вариант реализации Прокси-виджета для временной блокировки Ui на основе QStackedWidget…

qt-large-file-reading-sample

Рассматриваем простой способ отображения GIF-анимации в Qt с помощью QMovie…

qt-large-file-reading-sample

Рассматриваем способ добавления виджетов QWidget в ячейки таблицы QTableWidget на примере кнопок QPushButton…

qt-large-file-reading-sample

Решаем задачу чтения больших файлов с диска в Qt с помощью QFile и QThreadPool…

qt-large-file-reading-sample

Завершаем черновую реализацию удаленного воспроизведения нажатий клавиш, добавляя поддержку Linux-систем…

qt-large-file-reading-sample

Добавляем возможность управления удаленной системой не только мышью, но и с клавиатуры. Пока что для Windows-систем…

qt-large-file-reading-sample

Начинаем реализацию Клиента и Сервера. Обеспечиваем трансляцию видео-потока по сети…

qt-large-file-reading-sample

Создаем вспомогательную Qt-библиотеку для формирования видео-потока происходящего на экране…

qt-large-file-reading-sample

Начинаем новый проект. Создадим упрощенный аналог TeamViewer на Qt…

qt-large-file-reading-sample

Пользователь делает меньше ошибок, если его ограничивать. Один из способов достичь этого - использовать Мастер (или Визард). Поэтому не случайно в Qt существует виджет QWizard, о котором мы и поговорим…

qt-large-file-reading-sample

Разрабатываем простую архитектуру фильтров изображений в Qt, построенную на паттерне Декоратор…

qt-large-file-reading-sample

Хорошим тоном при разработке приложений уже давно стала поддержка нескольких языков. В Qt интернационализация основывается на классе QTranslator. Посмотрим, как использовать его в своих проектах…

qt-large-file-reading-sample

Разрабатываем Qt-приложение, которое позволяет загружать изображения в таблицу QTableWidget…

qt-large-file-reading-sample

Создаем простое Qt-приложение с возможностью перетаскивания изображений и текста по принципу Drag&Drop…

qt-large-file-reading-sample

Рассматриваем решение часто встречающихся задач обработки текста с помощью QRegularExpression в Qt5…

qt-large-file-reading-sample

Разработаем простую библиотеку текстовых эффектов для Qt. Особое внимание уделим ООП-проектированию и анализу гибкости архитектуры для подобного проекта…

qt-large-file-reading-sample

Диалоговые окна часто раздражают пользователей, если использованы не по назначению. Но иногда они бывают и полезны. Поговорим о создании и использовании модальных и немодальных диалоговых окон в Qt…

qt-large-file-reading-sample

Продолжаем работу над нашей сборкой dwm. Сделаем ее более полезной с помощью патчей…

qt-large-file-reading-sample

Еще раз о лямбда-функциях в C++. Попробуем разобраться, нужны они или нет…

qt-large-file-reading-sample

Делюсь своими впечатлениями от оконного менеджера dwm. Приводится краткий обзор его возможностей и быстрых клавиш. Особое внимание уделено изменению конфигурации и перекомпиляции…

qt-large-file-reading-sample

Завершаем работу над простым компилятором дерева синтаксического разбора. В этот раз за основу взят паттерн Посетитель…

qt-large-file-reading-sample

Улучшаем функциональность примера, начатого в прошлый раз. И помочь нам вызвался паттерн Абстрактная фабрика…

qt-large-file-reading-sample

И снова о применении паттернов в C++. На этот раз у нас в гостях Компоновщик…

qt-large-file-reading-sample

Рассматриваем паттерн Состояние на простом примере…

qt-large-file-reading-sample

Краткое введение в лямбда-функции в C++11 на примерах…

qt-large-file-reading-sample

Указатели на C++ у нас уже были. А теперь посмотрим на то, зачем нужны двойные указатели, и как их правильно использовать…

qt-large-file-reading-sample

Статья посвящена умным указателям в C++. Рассмотрены правила использования std::shared_ptr и std::unique_ptr…

qt-large-file-reading-sample

Несколько простых примеров для лучшего понимания области видимости и времени жизни переменных в C++…

qt-large-file-reading-sample

Все еще неуверенно пользуетесь указателями в C/C++? Пришло время исправить это…

qt-large-file-reading-sample

В этот раз рассмотрим способ добавления произвольных виджетов в QListWidget…

qt-large-file-reading-sample

Поговорим о создании собственных плагинов с помощью Qt…

qt-large-file-reading-sample

Коротко о применении QVariant…

qt-large-file-reading-sample

Создаем простой conky-код для отображения текущей погоды…

qt-large-file-reading-sample

Добавляем вывод полезной информации для нашего Openbox с помощью conky…

qt-large-file-reading-sample

Изучаем базовые средства оформления Openbox. Здесь вы узнаете о настройке тем, курсоров, иконок, прозрачности, обоев рабочего стола и многом другом…

qt-large-file-reading-sample

Наведем порядок на наших виртуальных рабочих столах Openbox - закрепим приложения на своих местах…

qt-large-file-reading-sample

Займемся настройкой быстрых клавиш и других полезных возможностей, которые существенно упростят работу с Openbox…

qt-large-file-reading-sample

Рассмотрим основные этапы первичной настройки оконного менеджера Openbox…

qt-large-file-reading-sample

В этот раз мы рассмотрим теоретические основы одной из наиболее интересных техник создания ИИИ - искусственные нейронные сети…

qt-large-file-reading-sample

Продолжаем решать побочные задачи. Добавим возможность изменения размеров уровня, остановки/запуска и управления скоростью симуляции, а также отображение отладочной информации о Ботах…

qt-large-file-reading-sample

Займемся более приземленными вещами. Добавим в тестовое приложение функциональность редактора уровней…

qt-large-file-reading-sample

Цель - попытаться убежать от атакующего Бота. Разберемся с тем, как подойти к решению подобной проблемы…

qt-large-file-reading-sample

Цель - найти маршрут для перемещения Бота из точки A в точку B. Давайте реализуем ИИИ, которому это по силам…

qt-large-file-reading-sample

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

qt-large-file-reading-sample

Чтобы что-то лучше понять, проще всего изучить это на примерах. В качестве основы для наших экспериментов с игровым искусственным интеллектом я подготовил простой движок, с которым мы будем работать…

qt-large-file-reading-sample

Начинаем новую серию статей, посвященных игровому искусственному интеллекту. Здесь мы коснемся основ этой интересной темы…

qt-large-file-reading-sample

Завершаем работу над реализацией тетриса. Речь пойдет о Представлении и Контроллере…

qt-large-file-reading-sample

Чтобы тетрис стал именно тетрисом, одной механики мало. Требуется контроль соблюдение правил. Этим мы и займемся…

qt-large-file-reading-sample

В этот раз мы посмотрим на динамическую составляющую модели тетриса, которая обеспечивает соблюдение известной нам механики игры…

qt-large-file-reading-sample

Продолжаем нашу работу над тетрисом на C++. Продумаем алгоритм обнаружения столкновений, который сильно упростит нам жизнь в дальнейшем…

qt-large-file-reading-sample

Разберемся со статическими аспектами игры тетрис. Для этого рассмотрим особенности реализации его Модели…

qt-large-file-reading-sample

Давайте немного отдохнем. Займемся разработкой тетриса на C++…

qt-large-file-reading-sample

Данные многих приложений удобно отображать в виде списков. В Qt для этой цели предусмотрен виджет QListWidget, примеры использования которого мы и рассмотрим…

qt-large-file-reading-sample

Использование таймеров в Qt является тривиальной, но часто необходимой задачей. Рассмотрим типичные примеры использования QTimer…

qt-large-file-reading-sample

Использование паттерна Singleton представляет собой компромисс между удобством использования и порождением глобальных зависимостей в коде. Узнайте подробнее о его плюсах и минусах…

qt-large-file-reading-sample

Программный код намного проще сопровождать, если он хорошо организован. Принцип единой ответственности поможет вам для достижения этой цели…

qt-large-file-reading-sample

В Qt имеются удобные средства для сохранения данных в файл. Поговорим о наиболее важных из них: QTextStream и QDataStream…

qt-large-file-reading-sample

В Qt предусмотрено множество способов проверки вводимых пользователем данных. Один из таких способов - применение QValidator. Рассмотрим пример его использования…

qt-large-file-reading-sample

Использование явного приведения типов в C++ нельзя назвать хорошей практикой. Но знать о существовании static_cast, reninterpret_cast, dynamic_cast и const_cast все равно нужно…

qt-large-file-reading-sample

Полиморфизм в C++ является главным методом создания гибкого и простого в сопровождении кода. Давайте рассмотрим пример его использования, основанный на ООП…

qt-large-file-reading-sample

Односвязный список - одна из самым популярных абстрактных структур данных. Он является основой для очередей и стеков, поэтому если вы серьезно занимаетесь программированием, то обязаны понимать особенности его реализации…

qt-large-file-reading-sample

Действия над комплексными числами крайне важны при решении многих математических задач. Освойте приемы работы с комплексными числами в C++, о которых вы могли не знать…

qt-large-file-reading-sample

Регулярные выражения в Qt имеют множество вариантов использования. Узнайте о наиболее важных из них…

qt-large-file-reading-sample

Ваше Qt-приложение использует изображения, звуковые эффекты или другие ресурсы? Обезопасьте себя от неосторожных действий пользователя, узнав как прятать эти внешние зависимости внутри бинарных файлов…

qt-large-file-reading-sample

Ни одна крупная информационная система не обходится без использования баз данных. О том, как применять их в своих Qt-приложениях вы и узнаете, прочитав эту заметку…

qt-large-file-reading-sample

При разработке приложений у вас может возникнуть задача запуска стронней программы. Из этой заметки вы узнаете о наиболее популярных способах использования этой возможности средствами Qt…

qt-large-file-reading-sample

Устали от лишних условных конструкций в коде? Хотите узнать о новом для себя приеме ООП? Тогда эта заметка для вас…

qt-large-file-reading-sample

Для создания гибкого кода подходят не только приемы ООП, но и низкоуровневые операции с битами. Об одном из таких приемов вы и узнаете…

qt-large-file-reading-sample

Контекстные меню часто позволяют экономить место на форме приложения, поэтому не лишне уметь ими пользоваться. Эта заметка является кратким введением в контекстные меню Qt…

qt-large-file-reading-sample

Компьютер без операционной системы и приложений - просто груда железа. О том, какие приложения позволяют решать повседневные задачи, вы узнаете в этой заметке…

qt-large-file-reading-sample

Пользоваться приложениями с графическим интерфейсом удобно. Но иногда для выполнения большого объема работы оптимальным решением оказывается использование консольных утилит. Одной из таких утилит является ImageMagick. В этой заметке мы поговорим о то

qt-large-file-reading-sample

Потребовалось сохранить настройки Qt-приложения, но не знаете как? Есть несколько способов. Рассмотрим один из самых удобных…

qt-large-file-reading-sample

Решили организовать возможность импорта/экспорта данных для вашего Qt-приложения? В этой заметке мы познакомимся с одним из способов реализации этих функций…

qt-large-file-reading-sample

Хотите узнать новые для себя приемы объектно-ориентированного проектирования? Или решили разобраться с формированием XML-документов в Qt? Тогда и в том, и в другом случае эта заметка может оказаться для вас полезной…

qt-large-file-reading-sample

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

qt-large-file-reading-sample

В большинстве современных языков программирования реализована поддержка мощного механизма для обмена сообщениями об ошибках. Речь идет об исключениях. Их возможности не безграничны, но они способны серьезно упростить структуру кода обработки ошибок.

qt-large-file-reading-sample

Программирование было бы намного легче, если бы не обработка ошибок. Но реальная среда исполнения ваших программ весьма сурова. Сетевые соединения обрываются, оборудование дает сбои, а пользователи проявляют чудеса изобретательности и так и норовят ч

qt-large-file-reading-sample

Я думаю, что вы уже неоднократно слышали про гибкие методики разработки программного обеспечения. Одним из важных элементов этих методик является создание тестов до написания самого исходного кода. В этой заметке я расскажу о некоторых плюсах и минус

qt-large-file-reading-sample

Достаточно часто добиться повторного использования кода можно с помощью универсальных алгоритмов, одним из входных параметров которых является функция. В этой заметке вы узнаете о том, какие преимущества несет в себе этот прием, а также какими спосо

qt-large-file-reading-sample

Эта заметка является кратким введением в концепцию модель-представление в Qt. Мы создадим простое приложение, которое позволит добавлять и удалять данные в табличную модель. При этом все изменения будут мгновенно отображены в соответствующем представ

qt-large-file-reading-sample

Эта заметка посвящена сравнению двух реализаций одного и того же алгоритма решения головоломки Судоку на языках программирования Python и С++. В ней мы попытаемся определить сильные и слабые стороны каждой версии…

qt-large-file-reading-sample

Если вы хотите добиться высокой эффективности при работе на компьютере, то начинать нужно с главного. А один из самых главных элементов взаимодействия с компьютером - это работа с файловой системой. В этой заметке я даю десять советов по использовани

qt-large-file-reading-sample

В Qt, как и во многих других SDK, предусмотрена очень удобная и весьма функциональная система компоновки виджетов с помощью лейаутов. Однако бывают случаи, когда возникает необходимость расположить один виджет над другим в обход системы компоновки. Н

qt-large-file-reading-sample

Когда-то у меня самого возникал этот вопрос, поэтому я решил дать ответ на него в виде этой заметки. Если вы только начинаете изучать C++ или не совсем уверены в том, что до конца понимаете назначение ключевого слова const, то этот материал будет вам

qt-large-file-reading-sample

Вам потребовалось отобразить индикатор прогресса в табличном представлении вашего Qt-приложения? О том, как это сделать, вы узнаете прочитав эту заметку…

qt-large-file-reading-sample

Эта заметка представляет собой краткое введение в принципы создания веб-служб на C++ с помощью gSOAP. Сначала мы разработаем свой простой протокол веб-службы, а затем реализуем сервер и клиент на С++, которые смогут обмениваться сообщениями по сети ч

qt-large-file-reading-sample

Как часто вы повторяетесь? Отнимает ли это у вас время? А можете ли вы что-нибудь с этим сделать? В этой заметке мы поговорим о принципе DRY в программировании и не только…

qt-large-file-reading-sample

В этой заметке мы посмотрим на то, как с помощью QtConcurrent можно легко увеличить скорость алгоритма обработки изображения в четыре раза…

qt-large-file-reading-sample

В этой заметке я расскажу об одном оконном менеджере для Linux, которым пользуюсь сам уже на протяжении 4 лет. Он называется Openbox. Если вы находитесь в поиске идеальной графической оболочки для своего дистрибутива, то вполне возможно, что этот мат

qt-large-file-reading-sample

QtSDK предоставляет нам множество удобных инструментов для разработки многопоточного кода. А модель сигналов и слотов многократно упрощает их использование и в большинстве случаев берет на себя вопросы синхронизации. В этой заметке мы рассмотрим неск

qt-large-file-reading-sample

Паттерн Наблюдатель позволяет легко организовать связь между объектами приложения по принципу функций обратного вызова. В этой заметке мы рассмотрим один способ реализации универсального подмешиваемого mixin-класса для объекта-Источника средствами C+

qt-large-file-reading-sample

Паттерны объектно-ориентированного проектирования предлагают гибкие решения для многих задач. Одним из таких паттернов является Model-View-Controller, то есть Модель-Представление-Контроллер. В этой заметке мы создадим с его помощью игру Сапер…

qt-large-file-reading-sample

Вам нравятся сигналы и слоты в Qt? А хотели бы вы пользоваться ими для связи ваших приложений по сети? Для этого существует библиотека LibQxt. О ней и пойдет речь в этой заметке…

qt-large-file-reading-sample

Рано или поздно любой разработчик программного обеспечения приходит к необходимости осмысленного продумывания и организация структуры своих проектов. В этой заметке я хочу рассказать о структуре, которую применяю сам при создании Qt-приложений на язы