Обновить
4.84

Qt *

Кроссплатформенный инструментарий разработки ПО

Сначала показывать
Период
Уровень сложности

Разработка для Sailfish OS: Работа с Bluetooth

Время на прочтение16 мин
Охват и читатели4.6K
Здравствуйте! Данная статья является продолжением цикла статей, посвященных разработке для мобильной платформы Sailfish OS. На этот раз речь пойдёт об использовании Bluetooth для установки соединения между двумя устройствами и передачи данных.
Читать дальше →

Разработка ПО для лазерного толщинамера на FriendlyARM Smart210

Время на прочтение3 мин
Охват и читатели4.4K
Краткое описание: задача заключается в измерении сечения объекта между двумя движущимися лазерными датчиками, весь расчет происходит на стороне компьютера.

В качестве средства разработки была выбрана Qt в связи с тем, что это кросс-платформенный продукт, а также OpenSource. Qt устанавливалась последняя на тот момент версии 5.4. Первоначальное использование программы предполагалось под Windows OS с сенсорным экраном. Где то на середине пути решили переделать по Smart210.
Подробности

ЛОЦМАН: Пишем свой WorkFlow-конфигуратор. Начало

Время на прочтение5 мин
Охват и читатели12K

Введение


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

image
Рисунок 1 — ЛОЦМАН WorkFlow конфигуратор

В ходе работы были выявлены основные недостатки WF-конфигуратора:
  • Нет русскоязычного поиска по ФИО, есть только по логину (причем только в виде домен\логин, кстати в «Центре управления комплексом», там где добавляются пользователи в систему, вообще нет никакого поиска...);
  • При большом количестве пользователей (>1K) он стал ужасно тормозить (около 4 минут на операцию добавления пользователя).

Поскольку пользователей приходилось добавлять часто и много, пришлось придумать, как оптимизировать этот процесс.
Читать дальше →

C++ объекты и QML, все по полочкам

Время на прочтение4 мин
Охват и читатели49K
На Хабре и в Сети достаточно много статей на тему QML, но все они оставляют за кадром некоторые моменты. Сегодня я попытаюсь приподнять занавес над некоторыми очевидными моментами для тех, кто имел дело со связкой QML и C++, и не таких очевидных для тех, кто только начинает вникать в нюансы этой замечательной технологии.
Итак. Допустим, у нас есть интерфейс приложения на QML и C++ класс с логикой работы. Как же нам собрать все это в единое целое?
Читать дальше →

ProxyOrmModel — ORM-подход к работе с данными в Qt

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели872

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

Читать далее

Установка Qt на Windows без регистрации и VPN. Часть 1. VisualStudio Community + Conan.io

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели21K

До присоединения Qt Group к санкциям, для установки Qt Framework and Tools было достаточно скачать Qt Online Installer, ввести данные учетной записи и выбрать интересующие компоненты в меню. Ныне приходится выбирать из скольких вариантов установки: прибегнуть к помощи одного из пакетных менеджеров или собрать из исходников. У каждого варианта есть свои плюсы и минусы. В этой статье рассмотрим установку через один из наиболее популярных пакетных менеджеров для с++ Conan.

Целевая операционная система: Windows 10

Шаг 0. Установка компилятора

Скачиваем с официального сайта VisualStudio Community

https://visualstudio.microsoft.com/ru/downloads/

Запускаем инсталлятор, для работы понадобится набор «Разработка классических приложений С++»

Читать далее

Делаем простой рисовальщик в PySide6

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели3.2K

Здравствуйте, уважаемые Хабравчане и гости!

Это моя первая статья на Хабре. Она не претендует на какой-либо уровень, а предназначена в первую очередь для тех, кто так же, как и я до написания этой статьи, находится в поиске решения проблемы рисования в PySide6.

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

Читать статью

Все секреты многопоточности

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели11K

Disclaimer. Данная работа не повлияла на мои взгляды на программирование, но повлекла достаточно радикальные изменения в подходах к проектированию автоматных объектов.  Теперь, если процесс  автономен и/или не предъявляет требований  к синхронизации, он может использовать другие механизмы параллелизма, не переставая при этом быть автоматным по сути. А почему так случилось, что этому предшествовало  и что это за изменения, вы прочтете далее.

Это не самая большая моя статья (так я думал, начиная ее), над которой я работал, пожалуй, дольше и больше, чем над другими. Но это точно первая моя статья, в которой автоматы и ВКПа не будут главной темой. Тема потоков для меня достаточно необычна, т.к. я совсем не фанат многопоточного программирования. Но,  тем не менее, занимаясь параллельным программированием, время от времени возвращаюсь к теме многопоточности. И вот, чтобы добыть какие-то аргументы для критики и одновременно попробовать найти практическое применение потокам, я решил в этот очередной раз более плотно заняться потоками. А что из этого получилось,  читайте далее.

Читать далее

PUSSY – швейцарский нож от мира ПО #ШБР1

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели4.2K

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

Читать далее

Развитие QSqlTableModel и QTableView

Уровень сложностиСложный
Время на прочтение2 мин
Охват и читатели3.6K

Возможно вам тоже покажется, что развитие Qt как минимум в части Sql остановилось этак лет 12 назад.

А ведь фреймворк заслуживает развития ибо базовые классы уровня QSqlTabelModel и QTableView предоставляют богатый функционал для реализации ваших запросов.

Как на Qt работать с таблицами базы данных

Размышление об Active Object в контексте Qt6. Часть 3. HttpManager

Время на прочтение10 мин
Охват и читатели2.3K

Во всех предыдущих статьях мы рассматривали лишь самый простой пример — сериализованный вывод сообщений на экран в отдельном потоке.

Пришло время, наконец, сделать что-то более реальное и существенное, пусть и не очень сложное. И этим будет менеджер http запросов.

Читать далее

Одноплатный компьютер для embedded программиста. Моргаем светодиодом на Qt

Время на прочтение3 мин
Охват и читатели8.8K

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

Читать далее

Знакомство с EXtensible Server Core (exsc)

Время на прочтение7 мин
Охват и читатели2.1K
image

Всем привет! Хочу поделиться с общественностью фреймворком, на основе которого в данный момент множество серверов, обслуживают тысячи клиентов в различных серверных системах (по условиям контракта, продукты основанные на данном фреймворке не разглашаются). EXtensible Server Core (exsc) — это фреймворк, написанный на языке C и позволяет в рамках одного приложения, иметь один или несколько серверных потоков. Каждый серверный поток способен обслужить большое количество клиентов. Хотя фреймворк можно использовать в модели типа запрос-ответ, в первую очередь он был рассчитан на поддержание постоянного соединения с большим количеством клиентов и обменом сообщений в реальном времени.
Читать дальше →

Ближайшие события

Проверка орфографии в приложениях Qt

Время на прочтение5 мин
Охват и читатели4.1K

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

Читать далее

Машина Тьюринга, как модель автоматных программ

Время на прочтение18 мин
Охват и читатели29K

Машина Тьюринга, как модель автоматных программ


1. Введение


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

Далее мы рассмотрим SWITCH-технологию проектирования автоматных программ, в которой с подобными процессами сталкиваешься сплошь и рядом. С одной стороны, она так изменила модель конечного автомата, что фактически вывела ее за рамки теории автоматов. А, с другой стороны, вводит в программирование понятия, которые с трудом воспринимаются программистами, а, порой, просто являются лишними, т.к. существуют более привычные аналоги из теории программ и практики программирования.

За основу обсуждения проблем автоматного программирования возьмем недавнюю лекцию Шалыто А.А. [1] и его «программные» статьи к определению парадигмы автоматного программирования [2, 3].
Читать дальше →

Библиотека асинхронных виджетов qt-async

Время на прочтение10 мин
Охват и читатели8.1K
Всем доброго времени суток. Хочу немного рассказать о своём проекте qt-async, возможно кому-то он покажется интересным или даже полезным.

Асинхронность и многопоточность уже давно и серьезно входит в обиход разработчиков. Многие современные языки и библиотеки разрабатываются с прицелом на асинхронное использование. Язык С++ тоже потихоньку движется в этом направлении — появились std::thread, std::promise/future, должны вот-вот завезти корутины и networking. Библиотека Qt тоже не отстает, предлагая свои аналоги QThread, QRunnable, QThreadPool, QFuture и т.п. При этом виджетов для отображения асинхронных действий в Qt я не нашел (возможно плохо искал, поправьте, если я ошибаюсь).

Поэтому я решил восполнить недостаток и попробовать реализовать такой виджет самому. Многопоточная разработка — дело сложное, но интересное.

Ubuntu ui toolkit на Ubuntu Touch и Android

Время на прочтение3 мин
Охват и читатели6.8K


Хотелось бы рассказать об опыте запуска приложения написанного с использованием Ubuntu ui toolkit на платформах Ubuntu Touch и Android. Для теста я использовал приложение из прошлой статьи. Тулкит находиться в стадии разработки, для интересующихся текущим состоянием информация под катом.
Читать дальше →

Idle Event в Qt

Время на прочтение3 мин
Охват и читатели6K
Привет, хабралюди!

Встпуление


Не так давно я стал работать с Qt под Windows. Моей задачей является разработка графического приложения с отрисовкой пользовательского интерфейса в реальном времени с анимацией и прочими плюшками. Работает вся эта красота через DirectX, а Qt очень помогает анимацией, окнами, сигналами и прочими полезными вещами.

Зачем это надо?


Если кто занимался разработкой игр, то знает, что перерисовка экрана происходит во время «простоя приложения» — т.е. те моменты, когда очередь сообщений к окну пустая. Это позволяет перерисовывать окно довольно быстро, так в частности пустое окно, может отрисовываться несколько тысяч фреймов в секунду(с отключенной вертикальной синхронизацией).
Читать дальше →
12 ...
33

Вклад авторов