Как стать автором
Обновить
20.48

Qt *

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

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

Как Visual Studio могла бы выглядеть с новым меню: делюсь GUI-шаблоном

Время на прочтение 7 мин
Количество просмотров 16K

Доброго времени года, уважаемые хабровчане! Я занимаюсь разработкой десктоп‑приложений с 2008 года. Наша компания делает специализированные продукты из области ЦОС (DSP), и GUI выглядит как нечто среднее между AutoCAD, Total Commander и Visual Studio. Не для домохозяек. Без видеоуроков и прочих туториалов особо не попользуешься.

В какой‑то момент мы пришли к необходимости полностью переработать меню наших приложений. Стало очевидно, что классическое меню в связке с панелью инструментов — это не лучшее решение. Когда количество уникальных функций (команд уровня меню) перевалило за сотню, то количество переросло в качество: пользователям стало все сложнее находить для себя требуемый, минимально достаточный work set. Особенно тяжко было новым пользователям. Хоть мы в исправности поставляли и видео‑уроки, и прочие туториалы, это не сильно помогало, поскольку далеко не каждый пользователь был согласен в них залезать. В общем, мы поставили себе задачу понизить порог входа в мир наших продуктов за счет изменения концепции меню.

И тут оказалось (внезапно), что развитие GUI в мире десктопа фактически стоит на паузе. Никто ничего нового особо не предлагает. Я пытался найти в окружающем мире какие‑то интересные gui‑шаблоны. Искал в литературе, искал в дистрибутивах известных desktop‑продуктов, поглядывал и на мобилки. Но нигде не нашел. Весь мир был слишком занят мобильной и веб‑разработкой. А гиганты десктопа (Adobe, Microsoft) были слишком связаны принципом «не трогай, если работает» (ну, или просто погрязли в собственном спагетти‑коде). Наконец, я перестал кого‑то ждать и сам сел за решение. И я его придумал и внедрил в нашу продуктовую линейку. И теперь хочу поделиться им с вами.

Чтобы мое решение было проще понять, я не буду его описывать на примере наших, узкоспециализированных программных продуктов ЦОС. Я просто покажу, как будет выглядеть всем известная среда разработки Microsoft Visual Studio, если применить к ней мой принцип формирования меню приложения.

Читать далее
Всего голосов 26: ↑24 и ↓2 +22
Комментарии 27

Новости

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

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

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

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

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

Вперед!
Всего голосов 11: ↑8 и ↓3 +5
Комментарии 20

Фильтруем логи санитайзеров и valgrind на примере приложения с Qt

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 1.2K

Периодически встречающаяся проблемами кода на С и C++ являются утечки памяти и неопределенное поведение. Даже если вы используете умные указатели, то от ошибок в библиотеках сторонних разработчиков вы не застрахованы. Для поиска ошибок в коде существуют специальные инструменты: санитайзеры и valgrind. Однако, не вся информация об ошибках имеет для нас ценность, рассмотрим методы её фильтрации.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 2

Выпуск среды разработки Qt Creator 12

Время на прочтение 3 мин
Количество просмотров 5.5K

Вчера, 23 ноября 2023 года вышел релиз среды разработки Qt Creator 12.

Qt Creator (ранее известная под кодовым названием Greenhouse) — свободная IDE для разработки на С, C++, JavaScript и QML. Разработана Trolltech (Digia) для работы с фреймворком Qt. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса как с использованием QtWidgets, так и QML. Поддерживаемые компиляторы: GCC, Clang, MinGW, MSVC, Linux ICC, GCCE, RVCT, WINSCW.

Что нового в Qt Creator 12
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 3

Истории

Пишем свой QTableView (продолжение: кастомные стили)

Уровень сложности Сложный
Время на прочтение 1 мин
Количество просмотров 2.8K

Создаем свой кастомный стиль для QTableView без css стилей и переопределения ролей модели данных. Занимаемся отрисовкой напрямую.

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 7

Работа с 3D-графикой и визуальными эффектами в Qt Design Studio

Время на прочтение 5 мин
Количество просмотров 2.4K

Чтобы водители получали приятные впечатления от вождения автомобиля, дизайнерам нужны современные инструменты, позволяющие создавать великолепные графические интерфейсы с минимальными затратами времени и сил. Qt Design Studio содержит все необходимые ресурсы для создания потрясающих пользовательских приложений. Они характеризуются современной 3D-графикой и работают с оптимальной производительностью на любой встраиваемой системе.

Современный автомобильный мир все больше склоняется к использованию 3D-графики для улучшения впечатлений от поездки. Мониторы кругового обзора, парковочные ассистенты и навигационные системы для дисплеев на лобовом стекле — вот лишь несколько примеров приложений, интенсивно использующих 3D-графику. Такие интеллектуальные системы помощи водителям (ADAS) используются все чаще, так как они расширяют возможности водителя в плане понимания ситуации благодаря реалистичному отображению автомобиля в окружающей обстановке в реальном времени. Во всех этих случаях «цифровой двойник» стал популярным способом визуализации состояния и работы автомобиля внутри него с помощью передовой 3D-графики.

Давайте вместе посмотрим, как 3D-графика становится частью пользовательских интерфейсов, которыми оснащается цифровая кабина современного автомобиля.

Читать далее
Всего голосов 15: ↑13 и ↓2 +11
Комментарии 3

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

Время на прочтение 8 мин
Количество просмотров 3.9K

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

Читать далее
Всего голосов 12: ↑9 и ↓3 +6
Комментарии 13

QCustomPlot + FetchContent

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 2.4K

Изыскание на тему безболезненной интеграции библиотеки QCustomPlot в cmake без похода в браузер за исходниками.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 7

Детекция машин на мобилке в 2023. С какими проблемами мы столкнулись и как решали

Время на прочтение 9 мин
Количество просмотров 3K

Как мы распознавали машины с камеры мобильного телефона с помощью TensorFlow-lite, C++, Qt и что из этого вышло.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 2

Пишем свой QTableView с нуля

Уровень сложности Сложный
Время на прочтение 6 мин
Количество просмотров 9.3K

Итак жил был фреймворк Qt и последние 10 лет ничего в нем не менялось. И захотел один чел написать свой QTableView с нужным ему функционалом, а именно захотелось ему выводить ячейки в несколько рядов (по горизонтали) в одной строке. Ещё ему хотелось растягивать одну из ячеек по ширине двух других.

Искал, искал чел готовый пример в интернете и не находил. И вот однажды подумал он посмотреть как сделан внутри сам QTableView и стало плохо ему от количества строк кода, не одна тысяча там.

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 55

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

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

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

Читать далее
Всего голосов 7: ↑4 и ↓3 +1
Комментарии 7

HOMEd: A почему «d»? Чтобы никто не догадался

Время на прочтение 5 мин
Количество просмотров 9.1K

Это случилось обычным воскресным вечером, лет 15 назад. Завтра - понедельник, на работу, значит пора ложиться спать. По всей квартире горит свет, надо идти выключать, но лень! Хочу чтобы одной кнопкой все выключалось! Знакомая ситуация, не правда ли?

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

Читать далее
Всего голосов 35: ↑34 и ↓1 +33
Комментарии 40

5-1 не в вашу пользу: 5 ошибок при создании игры

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 4.7K

«Блин, вот бы создать свою игру, да чтобы с этим да этим.....» — наверное каждый человек не раз сталкивался с подобным желанием, но 95% подобных желаний оканчивались ничем. В этой статье я хочу рассказать о том, как я делал свою игру и какие ошибки совершал. Учитесь на ошибках!

Читать далее
Всего голосов 10: ↑6 и ↓4 +2
Комментарии 15

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

Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
Business Code Conference
Дата 30 ноября
Время 17:30 – 00:00
Место Москва
Импульс Т1
Дата 1 декабря
Время 12:30
Место Москва Онлайн
YaTalks 2023 — главная конференция Яндекса для IT сообщества
Дата 5 – 6 декабря
Время 9:00 – 23:59
Место Москва Белград Онлайн

Изучаем Kirigami от KDE: примеры разработки приложений

Время на прочтение 9 мин
Количество просмотров 2K

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

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Выносим за скобки настройки CMake

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 3.8K
Fanny image about cmake

Каждый день я создаю множество однотипных проектов C++ с системой сборки cmake. И открывая проекты в IDE, каждый раз снимаю галочки с типа сборки, оставляя только Debug. А ещё меняю путь к папке сборки. Мелочь, а утомляет.

First time opening project without any preset. Qt Creator's Configure dialog image
Первое открытие проекта (без пресета)

Я решил изучить, как сделать эти действия автоматически, а в итоге узнал про удобный метод обмена настройками cmake между программистами.
Читать дальше →
Всего голосов 25: ↑25 и ↓0 +25
Комментарии 1

Выбираем Qt

Время на прочтение 5 мин
Количество просмотров 10K

Наш ведущий разработчик — Евгений Самойлов, недавно сходил в гости к Android Broadcast, где рассказал, почему мы в 2ГИС используем Qt. Для тех, кому удобнее читать, публикую выжимку того разговора.

2ГИС — это сложный продукт с картой, поисковым движком, базой данных, транспортными сценариями и многое другое. У сложного продукта — большое UI-наследие. Чтобы 2ГИС выглядел и работал хорошо на всех Android-устройствах, мы используем фреймворк Qt.

Читать далее
Всего голосов 35: ↑31 и ↓4 +27
Комментарии 41

Blur Behind: История провалов на разных ОС

Время на прочтение 21 мин
Количество просмотров 7.5K


Привет, Хабр! Меня зовут Михаил Полукаров, я занимаюсь разработкой Desktop-версии корпоративного супераппа в команде VK Teams. Я уже писал на Хабр две статьи про использование масок, создание сложных многослойных и полупрозрачных окон и о своем опыте реализации красивых спецэффектов с использованием Qt Framework: вот первая и вторая. По просьбам читателей я решил закончить этот небольшой цикл статей описанием неудач, с которыми мне пришлось столкнуться при реализации спецэффекта Blur Behind для разных ОС.
Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 4

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

Время на прочтение 3 мин
Количество просмотров 1.9K

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

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 0

Qt в качестве карьеры — становимся звездным разработчиком Qt

Время на прочтение 6 мин
Количество просмотров 3.1K

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

Сегодня я беру интервью у Майка Трахирна (Mike Trahearn), старшего инженера-программиста и чемпиона Qt 2022, живущего на светлом и солнечном Золотом побережье Квинсленда, Австралия.

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 1

Token-Based Authetification в автономных системах посредством Qt6 с использованием Qr-кодов. Qr-коды

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 1.9K

Третья часть цикла. Тут мы рассмотрим приложение, позволяющее генерировать и отображать Qr-коды, а также сделаем ui для управления токенами сервиса из прошлой статьи и дадим ему qss.

Читать далее
Рейтинг 0
Комментарии 0

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

Работа

QT разработчик
12 вакансий