Отлов событий в Qt с помощью фильтров событий

Простой способ отлова событий в Qt с помощью фильтров событий

Исполнение компьютерных программ происходит последовательно, выполняя одну инструкцию за другой. Иногда в программе требуется дождаться некоторого события и отреагировать на него. Ждать этого события в бесконечном цикле расточительно и для обработки таких событий придуманы библиотеки и системные функции, позволяющие вызывать пользовательские функции в тот момент когда происходит событие. В Qt имеется собственная система событий. Очевидный и топорный способ реакции на возникшее событие — переопределение методов базового класса, но этот же способ является и самым громоздким, а также может приводить к нарушению принципов DRY (don’t repeat yourself) т. е. дублированию кода. В этой статье вы познакомитесь со способом вынесения пользовательских обработчиков событий в отдельный класс с возможностью повторного использования.

Читать далее

Краткий справочник по умным указателям С++

Указатели

Умные указатели появились в стандарте С++11 и являются фундаментальной основой для написания безопасного кода с точки зрения утечек памяти в современном С++. Благодаря идиоме RAII (Resource Acquisition Is Initialization – получение ресурса есть инициализация), используемой в умных указателях, они позволяют эффективно работать с указателями на динамически выделенные области памяти. В этой статье вы узнаете об основных моментах при работе с этими полезными типами.

Читать далее

Чему я научился за годы программирования: 12 советов разработчикам

Помню тот далекий день, примерно в 2005-2006 году, когда я будучи школьником, методом “проб и ошибок” пытался заставить работать свой первый скрипт. В конце-концов мне это удалось и я ощутил приятную радость и воодушевление. Так начинался мой путь разработчика. Весь этот путь я прошел практически один, у меня не было наставника или учителя, многое приходилось постигать самому, ошибаясь, осознавая это и возвращаясь обратно, пробуя пойти другим путём. Глядя на этот путь, я сформулировал некоторые важные вехи на этом пути и хочу поделиться ими.

Читать далее

Особенности переменных языка Python

Python – скриптовый язык, получивший широкую популярность за счет простоты синтаксиса, скорости написания програм и лёгкой интеграции скриптов. Однако, люди перешедшие на питон с императивных языков, таких как С, например, могут столкнуться с некоторыми неожиданностями, с которыми столкнулся и я.

Читать далее

Взаимодействие с устройствами через ModBus RTU в Qt

Недавно мне на аутсорсе предложили выполнить небольшую работу: разработать ПО с графическим интерфейсом для управления источником питания по протоколу ModBus RTU. Не раздумывая я согласился решить поставленную задачу, однако меня ждал “интересный” сюрприз, вызванный моей же невнимательностью. В этой заметке я приведу пример работы с протоколом ModBus RTU в Qt с подробными коментариями, а заодно расскажу о своей досадной оплошности допущенной при решении этой задачи.

Читать далее

Реализация собственного SDK

Впервые передо мной встала задача разработать набор инструментов для работы и управления с ПК готовым устройством. Задача не из простых, и “с места в карьер” не прыгнешь! Ход мыслей и о пути проектирования будущей библиотеки я рассуждаю в этой статье.

Читать далее

Устраняем программно дребезг кнопок и переключателей

Кнопки и прочие переключатели – являются неотъемлемой частью, практически любого устройства. Однако, реализация этих устройств приводит к такому нежелательному явлению для микроконтроллерной техники, как дребезг контактов. Что такое дребезг? Давайте разбираться!

Читать далее

Arduino: работаем с SD картами

SD-карта довольно распространённый тип носителя в наше время. Каждый разработчик рано или поздно сталкивается с необходимостью хранить большой объём данных и\или использовать для каких-либо долгосрочных целей энергонезависимый носитель информации. На рынке существует огромное множество модулей для подключения SD-карт к Arduino или любому другому микроконтроллеру.
Практическое использование одного из таких модулей с разбором кода и схемотехнике предлагаю рассмотреть вам в этой статье.

Читать далее