Обновить
32K+

Qt *

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

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

Squish для Qt глазами разработчика

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

Squish - это платный инструмент для автоматического тестирования пользовательского интерфейса. Есть Squish для QT, Squish для Windows, для веба, для Java и iOS.

Во всех случаях тестовые сценарии - это скрипты на питоне или других скриптовых языках.

Рассмотрим следующие моменты при работе со Squish для QT на питоне:

Настройка и запуск без Squish IDE.

Real name, symbolic name и явные имена.

Прокси-объекты и их сравнение.

Suid на тестируемом приложении.

Тестирование рендеринга с помощью скриншотов.

Неудобство API Squish и работа без него: симуляция ввода, элементы списков и таблиц.

Добавление методов в метаобъект для вызова через Squish.

Подробнее

Как мы навели порядок в C++/Qt проекте с помощью Conan

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

О себе

Привет, Хабр! Я Тимлид/Архитектор в компании Монитор Софт. В прошлом C++ разработчик, сейчас все еще удается иногда выходить в поля)). Хочу поделиться нашим опытом использования Conan. С момента описываемых ниже событий прошло года 4, и в целом наше решение уже прошло проверку временем.

Читать далее

Создаем сложные интерфейсы и спецэффекты на базе Qt. Часть I

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

Привет, Хабр! Меня зовут Михаил Полукаров, я занимаюсь разработкой desktop-версии в команде VK Teams. Каждый день нашим мессенджером пользуются миллионы людей, поэтому мы уделяем особое внимание интерфейсу пользователя. Он должен быть не только функциональным и отзывчивым, но ещё и привлекательным с эстетической точки зрения. Для создания графических интерфейсов мы используем Qt Framework, и уже накопили много опыта в решении нетривиальных задач с помощью этого инструмента. Настолько много, что статью пришлось разделить на две части. 

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

Tiny-qORM: рассказ без счастливого конца

Время на прочтение18 мин
Охват и читатели3.6K
Чаще всего на хабре люди делятся историями своего успеха. Вроде, «Ребята, я написал свою ORM, качайте, ставьте ллойсы!» Эта история будет немного другая. В ней я расскажу о неуспехе, который считаю своим серьёзным достижением.


Ожидание — реальность.

История о метатипах Qt, написании велосипедов, превышении максимального числа записей в объектном файле и, неожиданно, инструменте, который работает так, как и было задумано.
Все заинтересовавшиеся - под кат

Рисуем карту сервисов при помощи Qt Quick и GraphViz

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

Решил запрототипировать два представления в дополнение к стандартному Jaeger UI. Это построение карты сервисов по трейсу; просмотрщик логов без пиксельхантинга и разворачивания спанов. Для виджетов есть обертка в виде nbergont/qgv, а хочется сделать на QtQuick.

Читать далее

GUI Генератор паролей на Python

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

Штош. В этой статье я научу вас делать кроссплатформенное приложение генератор паролей с графическим интерфейсом. Мы будем использовать язык Python и библиотеку PySide6 - привязку к инструментарию фреймворка Qt.

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

В статье я постарался затронуть все моменты создания и сборки приложения. Ознакомиться с проектом можно на GitHub.

Штош

OAuth2.0 авторизация в Vk средствами Qt5.8 и выше

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

Qt5.8 принёс нам QNetworkAuthorization -- модуль авторизации на сторонних сервисах. Пока что поддерживаются только протоколы OAuth и OAuth2.0, но обещали позже подвезти и OpenID.

А пока разберёмся, как использовать этот инструмент совместно с VkApi для Authorization Code Flow

Читать далее

Как я хакнул свой автомобиль: завершение истории

Время на прочтение19 мин
Охват и читатели23K
Если вы не читали первую часть статьи, то сделайте это.

Часть 2: создаём бэкдор


Хватит ждать


28 апреля 2022 года выпустили новые версии обновлений прошивок Display Audio для автомобилей Hyundai и Kia. К счастью, в том числе и для моей машины.


Я сразу же принялся за разработку собственного обновления прошивки с бэкдором.
Читать дальше →

Автоматическое тестирование QT GUI с помощью python и funq

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

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

Читать далее

Как пакетно конвертировать изображения и видео в гифки с помощью FFmpeg минуя CLI

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

Привет, земляне. Многие из вас слышали про набор библиотек FFmpeg, а некоторые его активно используют. Я из их числа, но я не поклонник взаимодействия с приложением посредством текстовых команд, поэтому я предлагаю собственное приложение с графическим интерфейсом для взаимодействия с FFmpeg. Теперь, не нужно изучать текстовый интерфейс, чтобы произвести пакетное конвертирование изображений и видео в GIF-файлы высокого качества.

Пожалуйста, подробнее

Оптимизация GUI на Qt

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

Как правило, при создании desktop-приложений на платформе Qt не возникает проблем, связанных с медленностью работы GUI. Qt – платформа достаточно надежная, неплохо вылизанная по всем параметрам, в том числе и по скорости работы. Однако всё же иногда бывают ситуации, когда из-за обилия виджетов графический интерфейс немного притормаживает, и это печально). В этой статье я приведу один частный пример простого графического интерфейса и покажу, как за два шага можно сначала ускорить его в 11 раз, а потом и в целых 34 раза. Вдобавок к этому, я постараюсь немного осветить механизм принятия решения для таких оптимизационных задач, постараюсь показать направление мыслей для правильного решения. Поехали!

Читать далее

QML Самоучитель

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

Уже давно вышла версия Qt4 c поддержкой QML. С тех пор многое допиливалось и сейчас технология является довольно успешной и стабильной. Однако нормального описания так и не удавалось найти на русском языке. А на английском написано так, как говорится, "правой рукой, да левое ухо". Поэтому решил начать перевод самоучителя (пока базового, затем планирую расширенный) на русский язык. Собственно, найти самоучитель можно на моем GitHub или здесь ниже.

Читать далее

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

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

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

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

1. Макеты

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

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

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

Читать далее

Кроссплатформенный переключатель прокси-сервера на Python + Qt

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

Устав искать нормальный портативный инструмент для переключения между моим рабочим прокси-сервером и прямым подключением дома (который, к тому же, работал бы на Windows и Linux), я решил-таки запилить собственную тулзу для этих целей. Вооружившись Python и Qt, начал клепать код в VSCode... Что из этого вышло -- читаем под катом.

Читать далее

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

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

К старту курса по разработке на Python делимся детальным руководством по работе с современным PyQt для новичков. Чтобы читать было удобнее, мы объединили несколько статей в одну:

1. Первое приложение

2. Слоты и сигналы

3. Виджеты

За подробностями приглашаем под кат.

Читать далее

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

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

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

Читать далее

История одной фичи в Qt Multimedia

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

Несмотря на рекомендации мейнтейнеров, этот модуль каждый раз возраждается в Qt Essentials Modules.

Некоторые требовали закопать и не откапывать, чтобы в мире было меньше страданий.

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

Модуль, который хейтили много поколений разработчиков.

Речь пойдет про Qt Multimedia

Приложение для аудиозвонков с регулировкой звука, как в реальной жизни

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

Распространенная в пандемию ситуация: общаетесь с друзьями или коллегами по Zoom, несколько человек начинают говорить одновременно и… разобрать хоть что-то не представляется возможным. Эта проблема натолкнула нас на идею написать свое приложение для аудиозвонков, где громкость регулируется весьма необычным образом. У каждого пользователя есть свой аватар — кружок на плоскости, который управляется перетаскиванием. Чем ближе аватары пользователей на экране, тем громче они друг друга слышат. Работает ли это? В целом да. Рассказываем, что у нас получилось.

Читать далее

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

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

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

Дописываем!