
Qt *
Кроссплатформенный инструментарий разработки ПО
Разработка ПО для лазерного толщинамера на FriendlyARM Smart210
В качестве средства разработки была выбрана Qt в связи с тем, что это кросс-платформенный продукт, а также OpenSource. Qt устанавливалась последняя на тот момент версии 5.4. Первоначальное использование программы предполагалось под Windows OS с сенсорным экраном. Где то на середине пути решили переделать по Smart210.
ЛОЦМАН: Пишем свой WorkFlow-конфигуратор. Начало
Введение
Я работаю в организации, которая начала внедрять ПО от компании АСКОН, если быть точным, то «Комплекс решений АСКОН 2013» (далее «Комплекс») + КОМПАС. Я занимаюсь администрированием этого «Комплекса». «Комплекс» имеет трехуровневую архитектуру (Клиент-Сервер приложений-Сервер БД). Ключевым продуктом «Комплекса» является ЛОЦМАН:PLM, также имеется набор утилит администрирования. Одна из утилит администрирования называется «ЛОЦМАН WorkFlow Конфигуратор» (далее WF-конфигуратор).

Рисунок 1 — ЛОЦМАН WorkFlow конфигуратор
В ходе работы были выявлены основные недостатки WF-конфигуратора:
- Нет русскоязычного поиска по ФИО, есть только по логину (причем только в виде домен\логин, кстати в «Центре управления комплексом», там где добавляются пользователи в систему, вообще нет никакого поиска...);
- При большом количестве пользователей (>1K) он стал ужасно тормозить (около 4 минут на операцию добавления пользователя).
Поскольку пользователей приходилось добавлять часто и много, пришлось придумать, как оптимизировать этот процесс.
C++ объекты и QML, все по полочкам
Итак. Допустим, у нас есть интерфейс приложения на QML и C++ класс с логикой работы. Как же нам собрать все это в единое целое?
ProxyOrmModel — ORM-подход к работе с данными в Qt

Привет, Хабр! В этой статье я хочу рассказать о своём проекте — библиотеке ProxyOrmModel для Qt, которая упрощает работу с данными в моделях. Если вы когда-нибудь сталкивались с необходимостью фильтровать, сортировать, группировать или агрегировать данные в QAbstractItemModel, то, вероятно, знаете, как это может быть утомительно. Я решил создать инструмент, который делает это проще и удобнее, вдохновившись идеями ORM (Object-Relational Mapping) из мира баз данных. Здесь я поделюсь архитектурой, ключевыми классами и уроками, которые я вынес из разработки.
Установка Qt на Windows без регистрации и VPN. Часть 1. VisualStudio Community + Conan.io

До присоединения Qt Group к санкциям, для установки Qt Framework and Tools было достаточно скачать Qt Online Installer, ввести данные учетной записи и выбрать интересующие компоненты в меню. Ныне приходится выбирать из скольких вариантов установки: прибегнуть к помощи одного из пакетных менеджеров или собрать из исходников. У каждого варианта есть свои плюсы и минусы. В этой статье рассмотрим установку через один из наиболее популярных пакетных менеджеров для с++ Conan.
Целевая операционная система: Windows 10
Шаг 0. Установка компилятора
Скачиваем с официального сайта VisualStudio Community
https://visualstudio.microsoft.com/ru/downloads/
Запускаем инсталлятор, для работы понадобится набор «Разработка классических приложений С++»
Делаем простой рисовальщик в PySide6

Здравствуйте, уважаемые Хабравчане и гости!
Это моя первая статья на Хабре. Она не претендует на какой-либо уровень, а предназначена в первую очередь для тех, кто так же, как и я до написания этой статьи, находится в поиске решения проблемы рисования в PySide6.
Дело в том, что для своего пет-проекта мне нужна была рисовалка на минималке, но при этом, должна иметь базовый функционал, от нее не требуется быть полноценным графическим редактором. Что нужно было:
Все секреты многопоточности

Disclaimer. Данная работа не повлияла на мои взгляды на программирование, но повлекла достаточно радикальные изменения в подходах к проектированию автоматных объектов. Теперь, если процесс автономен и/или не предъявляет требований к синхронизации, он может использовать другие механизмы параллелизма, не переставая при этом быть автоматным по сути. А почему так случилось, что этому предшествовало и что это за изменения, вы прочтете далее.
Это не самая большая моя статья (так я думал, начиная ее), над которой я работал, пожалуй, дольше и больше, чем над другими. Но это точно первая моя статья, в которой автоматы и ВКПа не будут главной темой. Тема потоков для меня достаточно необычна, т.к. я совсем не фанат многопоточного программирования. Но, тем не менее, занимаясь параллельным программированием, время от времени возвращаюсь к теме многопоточности. И вот, чтобы добыть какие-то аргументы для критики и одновременно попробовать найти практическое применение потокам, я решил в этот очередной раз более плотно заняться потоками. А что из этого получилось, читайте далее.
PUSSY – швейцарский нож от мира ПО #ШБР1

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

Возможно вам тоже покажется, что развитие Qt как минимум в части Sql остановилось этак лет 12 назад.
А ведь фреймворк заслуживает развития ибо базовые классы уровня QSqlTabelModel и QTableView предоставляют богатый функционал для реализации ваших запросов.
Размышление об Active Object в контексте Qt6. Часть 3. HttpManager

Во всех предыдущих статьях мы рассматривали лишь самый простой пример — сериализованный вывод сообщений на экран в отдельном потоке.
Пришло время, наконец, сделать что-то более реальное и существенное, пусть и не очень сложное. И этим будет менеджер http запросов.
Одноплатный компьютер для embedded программиста. Моргаем светодиодом на Qt

Цель - моргать светодиодом на GPIO одноплатного компьютера в своём Qt проекте. Я решил прикрутить известную библиотеку для управления GPIO под названием wiringOP к своему проекту на Qt статически, да и ещё иметь возможность редактировать wiringOP как проект статической библиотеки прямо в Qt Creator.
Знакомство с EXtensible Server Core (exsc)

Всем привет! Хочу поделиться с общественностью фреймворком, на основе которого в данный момент множество серверов, обслуживают тысячи клиентов в различных серверных системах (по условиям контракта, продукты основанные на данном фреймворке не разглашаются). EXtensible Server Core (exsc) — это фреймворк, написанный на языке C и позволяет в рамках одного приложения, иметь один или несколько серверных потоков. Каждый серверный поток способен обслужить большое количество клиентов. Хотя фреймворк можно использовать в модели типа запрос-ответ, в первую очередь он был рассчитан на поддержание постоянного соединения с большим количеством клиентов и обменом сообщений в реальном времени.
Ближайшие события
Проверка орфографии в приложениях Qt
В данной статье описано как добавить к вашему приложению на Qt проверку орфографии с подсветкой орфографически некорректных слов и возможность замены на более подходящие варианты. Для этого используется словарь hunspell.
Машина Тьюринга, как модель автоматных программ
Машина Тьюринга, как модель автоматных программ
1. Введение
Программирование нуждается в новых универсальных алгоритмических моделях, а аппаратные средства реализуют алгоритмы не только в другой форме, но и на базе другой алгоритмической модели — автоматной. Заимствование технологии из сферы разработки аппаратных средств ключевая идея автоматного программирования. Однако синтез цифровых устройств отличается от программирования. Но, заимствуя модель, с одной стороны, ее не желательно существенно изменять, а, с другой стороны, нельзя не учитывать уже существующую теорию и практику программирования.
Далее мы рассмотрим SWITCH-технологию проектирования автоматных программ, в которой с подобными процессами сталкиваешься сплошь и рядом. С одной стороны, она так изменила модель конечного автомата, что фактически вывела ее за рамки теории автоматов. А, с другой стороны, вводит в программирование понятия, которые с трудом воспринимаются программистами, а, порой, просто являются лишними, т.к. существуют более привычные аналоги из теории программ и практики программирования.
За основу обсуждения проблем автоматного программирования возьмем недавнюю лекцию Шалыто А.А. [1] и его «программные» статьи к определению парадигмы автоматного программирования [2, 3].
Библиотека асинхронных виджетов qt-async
Асинхронность и многопоточность уже давно и серьезно входит в обиход разработчиков. Многие современные языки и библиотеки разрабатываются с прицелом на асинхронное использование. Язык С++ тоже потихоньку движется в этом направлении — появились std::thread, std::promise/future, должны вот-вот завезти корутины и networking. Библиотека Qt тоже не отстает, предлагая свои аналоги QThread, QRunnable, QThreadPool, QFuture и т.п. При этом виджетов для отображения асинхронных действий в Qt я не нашел (возможно плохо искал, поправьте, если я ошибаюсь).
Поэтому я решил восполнить недостаток и попробовать реализовать такой виджет самому. Многопоточная разработка — дело сложное, но интересное.
Ubuntu ui toolkit на Ubuntu Touch и Android

Хотелось бы рассказать об опыте запуска приложения написанного с использованием Ubuntu ui toolkit на платформах Ubuntu Touch и Android. Для теста я использовал приложение из прошлой статьи. Тулкит находиться в стадии разработки, для интересующихся текущим состоянием информация под катом.
Idle Event в Qt
Встпуление
Не так давно я стал работать с Qt под Windows. Моей задачей является разработка графического приложения с отрисовкой пользовательского интерфейса в реальном времени с анимацией и прочими плюшками. Работает вся эта красота через DirectX, а Qt очень помогает анимацией, окнами, сигналами и прочими полезными вещами.
Зачем это надо?
Если кто занимался разработкой игр, то знает, что перерисовка экрана происходит во время «простоя приложения» — т.е. те моменты, когда очередь сообщений к окну пустая. Это позволяет перерисовывать окно довольно быстро, так в частности пустое окно, может отрисовываться несколько тысяч фреймов в секунду(с отключенной вертикальной синхронизацией).
Вклад авторов
Gorthauer87 587.0Assuri 470.0vitaly_KF 331.2Vass 330.0tass 303.0BlackRaven86 275.0rule 242.6FRUCT 239.0Andrey2008 228.0