Обновить
0.86

Qt *

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

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

Мой путь воина, или как я готовила приложение для жизни в Sailfish

Время на прочтение6 мин
Охват и читатели8.7K
Искусство воина состоит в сохранении равновесия
между ужасом быть человеком и чудом быть человеком.
«Путешествие в Икстлан»


Мой путь воина – брутального frontend-разработчик на «плюсах» – состоял в том, чтобы найти равновесие между разработкой приложения, работающего на Sailfish, и кроссплатформенного приложения.

С недавних пор я тружусь на позиции разработчика в компании Digital Design, и иногда мне приходится разбираться с задачами, с которыми я ранее не встречалась. Это интересно и часто весело. Сейчас, например, я пишу корпоративное приложение под Sailfish OS и хочу поделиться с вами своим опытом – об этом и пойдет речь ниже. Следуйте за мной под кат, если вы начинающий разработчик или, так же, как и я, столкнулись с задачей адаптации корпоративного приложения под ОС Sailfish и не знаете, с чего начать, а также те, кто ещё не слышал о Qt и особенностях Sailfish.

Читать дальше →

Реализация работы с Long Poll сервером в клиенте ВКонтакте для Sailfish OS

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

Введение


К сожалению, даже сейчас, в современном мире, не всегда удаётся воспользоваться всеми благами технологии push и порой приходится реализовывать обходные пути, например, в виде Long Poll, который позволяет эмулировать механизм push-уведомлений. В частности, такая необходимость возникла при реализации клиента ВКонтакте для Sailfish OS.

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

Подразумевается, что читатель знаком с разработкой под Sailfish OS не только на QML, но и на C++.
Читать дальше →

Как устроено тестирование BIM-системы Renga

Время на прочтение9 мин
Охват и читатели6.1K
Ранее мы уже писали как устроено тестирование КОМПАС-3D и про автоматизацию тестирования интерфейса КОМПАС-3D, сегодня расскажем про тестирование BIM-системы Renga.

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

Что такое Renga


Renga Architecture — архитектурно-строительная BIM-система, разработанная Renga Software (совместное предприятие компаний АСКОН и 1С), для создания внешнего облика здания, информационной модели, быстрой компоновки чертежей. Ее пользователями являются архитекторы, проектировщики и конструкторы.



Подробнее о семействе продуктов Renga (Осторожно маркетинг!)
Renga Architecture – система для архитектурно-строительного проектирования. Программа создана для максимальной помощи проектировщику в решении его задач: создание архитектурного облика здания, информационной модели и быстрая компоновка чертежей согласно стандартам СПДС и многое другое.

Renga Structure — cистема для проектирования конструктивной части зданий/сооружений. Программа для инженеров-конструкторов и проектировщиков по созданию информационной модели здания или сооружения и получению чертежей марок КР/КЖ/КЖИ/КМ/АС.

Семейство продуктов Renga предназначено для проектирования по технологии BIM. Высокая производительность систем позволяет работать с большими проектами без видимого снижения качества работы с 3D-моделью:
Читать дальше →

Разбираемся в MAVLink. Часть 2

Время на прочтение5 мин
Охват и читатели21K
В прошлой части мы разобрали основные принципы работы с протоколом MAVLink и научились обмениваться сообщениями типа HEARTBEAT. В этой части мы рассмотрим некоторые другие типы сообщений, которые отвечают за полётные данные и попробуем эти данные визуализировать при помощи Qt.

image
Читать дальше →

Разработка Android приложений с использованием qt и android studio часть вторая

Время на прочтение7 мин
Охват и читатели23K
Доброго времени суток всем посетителям и пользователям Хабра!

Недавно я на эмоциях опубликовал статью, где я рассказывал о всех своих злоключениях при попытки создать qt приложение ( а именно вызвать и использовать
QApplication a(argc, argv);
и использовать его при помощи андроид студии. Было найдено «решение», которое было чрезвычайно костыльным. Теперь у меня были выходные, чтобы разобраться как надо работать с qt без таких костылей из андроид студии. Всем кому интересно — добро пожаловать под кат!
Читать дальше →

Поиск RSS новостных сайтов

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

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

Когда встал вопрос о том как искать новостные сайты, пришла мысль о использовании сервиса news.google.com. От туда можно выдёргивать ссылки на новостные сайты, к тому же они постоянно добавляются и отсортированы по регионам, темам и т.д. Осталось пройтись по всем разделам news.google.com, выдернуть ссылки новостных сайтов, а затем найти все RSS каждого из них.
Читать дальше →

Сборка плагинов для Qt Creator в windows

Время на прочтение1 мин
Охват и читатели2.3K
Столкнулся с проблемой: как под виндой собрать плагин для Qt Creator'а, поставляемого с Qt SDK или Nokia Qt SDK.

Для начала нужны исходники криейтора, их легко находим на гиториусе или ftp. Забираем оттуда версию 2.0.0 (сейчас такая в обоих SDK), распаковываем, кладём наш плагин в src\plugins. Можно собирать (как только соберётся сам криейтор).

Теперь фишка. Чтобы плагин работал с криейтором из SDK его обязательно надо собирать в релизе и компилятором MSVS2008 с Qt 4.7 (beta2 или RC). Соответственно, скачанные исходники криейтора надо собирать так же.

Собственно, всё, теперь можно копировать длл-ку плагина и .pluginspec файл в %QT_SDK_INSTALL_DIR%\QtCreator\lib\qtcreator\plugins\.

В принципе, плагины от Qt Creator 2.0.0 скорее всего заработают и с версией 2.0.1 (последняя на данный момент), только в файле .pluginspec надо везде 2.0.0 заменить на 2.0.1.

Хабратопик, побудивший меня исследовать этот вопрос

Компиляция QT-программы под Windows — зависимости

Время на прочтение1 мин
Охват и читатели28K
Ради интереса решил пощупать Qt.

Соответственно, скачал Qt Creator, создал проектик, поигрался с экшнами и прочим. И захотелось проектик этот собрать в .exe-файл.

Дебаг в рамках Creator выполнялся идеально, а вот после Build — .exe выдал мне требование зависимости mingwm10.dll.

Полез в Google, и после некоторого времени поиска сообразил скопировать

C:\QT\QTCreator\bin\mingwm10.dll, а так же
C:\QT\QTCreator\qt\bin\QtCore4.dll
C:\QT\QTCreator\qt\bin\QtGui4.dll

в папку с билдом. Только после этого и заработало.

Но остаётся проблема последующего распространения программы. Неужели для того, чтобы передать другому человеку своё творение размером в 100 килобайт, надо делать инсталлер, чтобы закидывать вышеуказанные файлы в System32?

Уважаемые знатоки, просвятите меня — разве никак нельзя собрать проект вместе с зависимостями?
Может, как-то можно уменьшить объём 13-ти мегабайт библиотек для работы 100 килобайтной программы?

UPD: Знатоки пишут, что библиотеки обязательны.

Выбор невелик тогда — или паковать NSISом (получилось 4.5 мегабайта на пустой проект), или же делать сетевой инсталлер с вспомогательной программкой, которая будет тянуть зависимости, или же делать solid — как есть.

Даже если собирать библиотеки static — то получится просто раздутый .exe-файл

И снова клон десктопного клиента Telegram

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

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

Читать далее

Создание своего терминала на C++ и Qt: Часть 1

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

Привет, хабр! Сегодня мы создадим свой собственный терминал на языке программирования C++. Я являюсь фанатом Linux, и пользуюсь минималистичными терминальными программами - от Vim как IDE до чатов. Есть множество терминалов, у каждого из них есть плюсы и минусы. Наш терминал не будет претендовать на место серьезного проекта, но если вы хотите улучшить код, который мы сегодня напишем - то вы молодцы, можете без проблем развить наш терминал.

Это будет небольшой, минималистичный терминал для Linux. Он будет на основе фреймворка Qt 5 и библиотеки qtermwidget5.

И эта будет не одна статья, а целая серия статей!

Вперед!

Разработка мобильного клиента СДУ «Приоритет» под ОС «Аврора» на фреймворке Qt

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

Всем привет! Меня зовут Илья, и я разработчик ПО в области автоматизации документооборота в компании «Диджитал Дизайн». Так получилось, что изначально я iOS-разработчик, но по воле случая мне удалось поучаствовать в создании мобильного приложения — клиента СДУ «Приоритет» (далее — СЭД, система электронного документооборота) для устройств под управлением мобильной ОС «Аврора». И сейчас, когда первая версия приложения готова, а сам проект находится на этапе внедрения, я бы хотел поделиться полученным опытом и рассказать про особенности разработки под ОС «Аврора» и трудности, с которыми нам пришлось столкнуться в процессе.

Читать далее

Создание элементов управления в Figma Design

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

Статья о том, как превратить конструкцию Figma в рабочий набор элементов управления без какого-либо кодирования.

Читать далее

PyQt6 — полное руководство для новичков. Продолжение

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

В первом материале мы рассказали о создании первого окна, о сигналах, слотах и событиях, а также о виджетах. Сегодня, к старту курса по Fullstack-разработке на Python, делимся продолжением — о макетах, работе с панелями инструментов и меню при помощи QAction, дополнительных и диалоговых окнах. За подробностями приглашаем под кат.

1. Макеты

2. Панели инструментов, меню и QAction

3. Диалоговые окна и окна предупреждений

4. Дополнительные окна

Читать далее

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

Сборка и публикация Qt Android приложений через Gitlab CI

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

Доброго времени суток и с Новым Годом хабровчане! В данной статье хочу рассказать как я делал CI/CD на платформе GitLab для кроссплатформенных мобильных приложений написанных на Qt. Пока что только для Android, но в будущем возможно получится сделать и для iOS. Кого заинтересовал, прошу пожаловать под кат.

Читать далее

Простой GUI калькулятор на Python #3. Backspace, отрицание и регулировка размера шрифта

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

Штош. Дописываем калькулятор. Сделаем Backspace, отрицание, отрегулируем размер шрифта, чтобы он не выходил за рамки приложения. Если вы не читали прошлую статью, я вам настоятельно рекомендую это сделать.

Дописываем!

Заводим трактор: QMake -> CMake

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

Заводим трактор: переезжаем с QMake на CMake?

По дороге заглянем на улицу "Кросс компиляторщиков", в сквер "Систем сборки" и посидим в баре "Управления зависимостями". Заодно увидим тех, кто использует Qt в embedded linux.

Поехали

Новый язык программирования — Relax

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

Всем привет, я являюсь автором языка программирования Relax. На данный момент я разрабатываю RVM (RelaxVirtualMachine) И Relasm (Relax Assembly). Первые попытки сделать свой язык начались в конце лета 2020, тогда я и не думал что делать язык - это так сложно. Сам же проект Relax начался 30 декабря 2020 года. Прошло полтора месяца, а на нем уже можно написать что-нибудь простенькое. RVM написана на С++ и Qt.

Читать далее

Реализация двойной панели инструментов в QT

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

В данной статье разобран код на Qt, который позволяет создать панель инструментов с возможностью менять положение виджетов на экране в зависимости от соотношения размеров частей этой панели, и которая будет менять это соотношение в зависимости от перемещения пользователем виджетов (сплиттера).

Ссылка на исходный код

Читать далее

Обзор возможностей Qt Creator 4.12 и QBS 1.16 для программирования микроконтроллеров

Время на прочтение4 мин
Охват и читатели4.5K
Здравствуйте, товарищи программисты «железячники» и все кто им сочувствует. Я хотел бы продолжить обзор возможностей IDE Qt Creator в связке с системой сборки QBS в части программирования микроконтроллеров.

Ранее я уже писал про улучшения в предыдущих версиях QtC 4.10 и QBS 1.14, QtC 4.11 и QBS 1.15.

Кому эта тема интересна, добро пожаловать по кат.
Читать дальше →

Трагичная история знакомства с poppler

Время на прочтение3 мин
Охват и читатели8.4K
…Или как мы писали пилот приложения для ОС Sailfish с использованием poppler.

Год начался с занятной задачи — нашей команде нужно было за короткий срок собрать пилот приложения «Мобильное рабочее место руководителя» на ОС Sailfish. По сути, это мобильный клиент СЭД, т.е. он предназначен для работы с документами. Ну и конечно же, для работы с документами необходим pdf-reader. Но оказалось, что заставить его работать гладко не так-то просто. Но мы, можно сказать, справились (для прототипа, конечно). Как? Читайте под катом.

image
Читать дальше →

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