Обновить
0.86

Qt *

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

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

Простая Kanban-доска для Jira

Время на прочтение14 мин
Охват и читатели40K
Здесь я расскажу, как сделать канбан-доску для проекта в Jira, пользуясь только QML и JavaScript. С небольшими доработками вместо Jira вы можете использовать любой другой трекер, имеющий REST API.



Предыстория


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

Лепим тулбар на PyQt, экспортируем данные в Excel и HTML

Время на прочтение9 мин
Охват и читатели18K
В предыдущей части я рассказывал о создании модуля для запуска SQL-запросов и оболочки, в которой эти модули запускаются. После недолгой работы с запросами возникает очевидный вопрос — а как воспользоваться результатом выборки, кроме как посмотреть на экране?

Для этого стоит сделать дополнительные инструменты экспорта и копирования данных. Экспортировать будем в файл в формате Excel, а копировать в системный буфер в формате HTML.

Но для начала прилепим к нашему главному окну панель инструментов.


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

Разработка для Sailfish OS: Тестирование QML-компонентов

Время на прочтение7 мин
Охват и читатели5.5K
Здравствуйте! Данная статья является продолжением цикла статей, посвященных разработке для мобильной платформы Sailfish OS. В этот раз мы расскажем о том, как организовать тестирование QML-компонентов приложений, написанных для мобильных устройств. Рассмотрим все этапы от написания кода до запуска тестов на реальном устройстве.
Читать дальше →

Qt: Вывод отчета стандартными средствами (или живем без генераторов отчета)

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

Нудное вступление с Qt 4.8


Недавно коллега по работе спросил об опыте использования построения отчетов под Qt (начинаем потихоньку внедрять SCADA, написанную на Qt) — в силу поставленной задачи очень нужная вещь. Генераторами никто не пользовался (на данной платформе), но отчеты мы я каким-то образом делали без использования FastReport и таскания лишних приложений.

Покопавшись в проектах, нашел приложение с отчетами, виджетами для предпросмотра (QLabel, QTableView....). Вид отчета «preview»:

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

GET/POST запросы в Qt или обёртка над QNetworkAccessManager

Время на прочтение5 мин
Охват и читатели26K
Писал я как-то мессенджер для «ВКонтакте» и пришлось мне разбираться с отправкой GET/POST запросов. Оказалось, для этих целей в Qt можно (и нужно) использовать класс из модуля QtNetwork — QNetworkAccessManager, а также QNetworkReply и QNetworkRequest. Для GET/POST запросов у этого класса есть соответствующие методы get, который принимает QNetworkRequest и post, который помимо QNetworkRequest принимает еще и QByteArray (собственно данные, которые нужно отправить). В итоге я написал свою обертку над QNetworkAccessManager, которая полностью скрывает работу с этими классами. Кому интересно — прошу под кат.
Читать дальше →

QtDbus Часть 2. Победное сияние чистого разума

Время на прочтение8 мин
Охват и читатели9.5K
Предыдущая часть оставляла мрачные прогнозы, но все оказалось гораздо, гораздо, гораздо лучше.

Разбор бонус-левела
Итак, спасибо хабражителю KOL93, он обратил внимание на то, что у QDbusAbstractAdaptor должен быть родитель. Для меня это оказалось новостью, т.к. я сильно привык, что родителя может и не быть. Может это убережет еще кого-то от подобного ляпа.

Вдобавок мое незнание патернов, есть такой патен «Адаптер». Так вот QAbstractAdaptor собственно это он и есть. С учетом вышесказанного и замечания доки, что этот класс должен быть легковесным пример, действительно проясняющий подход либы должен быть таким:
Читать дальше →

Qt Graphics View Framework — темная сторона. Часть 2

Время на прочтение5 мин
Охват и читатели14K
Начав свой путь, мы не останавливаемся и продолжаем изучать темные стороны документации. Где-то они могут быть характерны для всего Qt, а где-то присущи только Graphics View. Но так или иначе встреча с ними не всегда проходит безболезненно.
Читать дальше →

QScintilla: все глубже и глубже

Время на прочтение2 мин
Охват и читатели5.9K
Добрый день!

Чуть не забыл. Первая и вторая статья цикла.

Это опять я, со своей новой статьей. Сегодня я расскажу вам, как работать с qscintilla почти на полную мощь. А конкретнее: покажу почему полезно наследовать QsciScintilla своим классом, нежели использовать его копию и расскажу как писать какой-никакой автокомплит кода для своего редактора.

Сразу скажу, статья будет небольшая, а как работать со всем этим хламом я покажу на примере моего пока слабо развивающегося проекта Web Development IDE Galactica.
Читать дальше →

Вебинары по QML и QtQuick: часть первая, вступительная

Время на прочтение1 мин
Охват и читатели10K
Привет, Хабр!

Мы представляем новую серию обучающих постов о QML и QtQuick. На сей раз мы покажем скринкасты с очередных Qt-семинаров Кирилла Кринкина, посвящённых разработке на QtQuick.

Из вступительного вебинара вы узнаете про набор технологий QtQuick. Разумеется, в ролике попутно будет рассказано, что из себя представляет декларативный язык разметки QML, какие у него назначения и особенности, каков его синтаксис.

После всего этого будет описана архитектура приложений на QML и разобрано как написание простейшего «Hello, World!», так и более сложных примеров, иллюстрирующих:
  • как создавать проекты в Qt Creator;
  • что такое связывание свойств и зачем оно используется в языке (кстати, про связывание свойств у нас есть отдельная статья);
  • как использовать мышь.

Смотрите видео под катом

Экспорт в mail.app из приложения Qt

Время на прочтение5 мин
Охват и читатели916
Возникла необходимость делать экспорт неких файлов в email (пользователи очень просят). Проблема в том как это сделать в Mac OS X. Ну предположим мы не предполагаем никаких других почтовиков кроме Mail.app. На developer.apple.com нашел описание как это делается без Qt. Первая попытка реализовать сие породила массу вопросов, ответов на которые в developer.apple.com не найти. Вобщем помучился я достаточно и тут выкладываю готовый рецепт реализации такой фичи при помощи AppleScript.
Читать дальше →

Встраиваем качественный звук в Qt приложение (Qt + FMOD)

Время на прочтение2 мин
Охват и читатели9.5K
Помню время, когда я обрадовался мультимедийным возможностям Qt… phonon хорош, это да. Но помню и время разочарования: слишком мало всего умеет этот самый phonon. Как минимум, он не умеет воспроизводить два звука одновременно. Да и интерфейсы у него хромают…

Как бы то ни было, а начал я искать что-то получше, причём кроссплатформенное. После пары неудачных находок, я наткнулся на FMOD Library. Не смотря на отсутствие исходного кода, это бесплатная (для некоммерческого использования) кроссплатформенная библиотека.

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

Способы создания пользовательских компонентов в QML

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

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

Также одним из условий будет, чтобы внешний вид полученных элементов можно было редактировать в QtCreator.

Все исходники в репозитории.

Читать далее

Zoom в Qt виджете

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

Пошаговая инструкция по созданию отрисовываемого Qt-виджета с возможностью зума и навигации для начинающих.

Читать далее

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

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

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

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

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

Читать далее

Кастомизация календаря на PyQt5

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

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

Читать далее

QSerializer умер, да здравствует QSerializer

Время на прочтение7 мин
Охват и читатели3.8K
Прошло несколько месяцев с тех пор, как я здесь рассказал о своем проекте Qt-based библиотеки для сериализации данных из объектного вида в JSON/XML и обратно. Надо признать — реализация получилась, прямо скажем, спорной.

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


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

Qt на Android: как мы дали вторую жизнь приложению с авторскими медитациями

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

Краткое лирическое вступление — в 2017 году мне случилось очень плотно заинтересоваться медитациями. Этому способствовала целая цепочка событий, благоприятных и не очень. Я долгие годы интересуюсь и практикую осознанные сновидения, однако конкретно медитациями в их каноническом виде до этого заниматься не приходилось. В эти дни многие истории начинаются в баре (с) увлечения начинаются с поиска в Google, вот и я начал именно так. Практически сразу нашлись топовые по популярности приложения для занятия медитацями — Calm и Headspace.


Первое послужило неплохое отправной точкой (отличные обучающие медитации для начинающих), второе я не нашел для себя полезным, не понравилась подача. Оба оттолкнули своими платными (и надо сказать весьма дорогостоящими для РФ) тарифными планами. Возможно я просто не отношусь к категории людей, которым нужно заплатить, чтобы подбадривать себя чем-то заниматься :) Продолжная изучать Google play, я наткнулся на два близких мне по духу бесплатных приложения. Первое это "Let's Meditate" — я пользуюсь им по сей день, о втором речь пойдет в теле статьи.

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

Просто еще одна Qt обертка для gRPC и protobuf

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


Не так давно я озадачился тем, что нет достаточно удобных и простых враппера и генератора для protobuf и gRPC, основанных и полностью совместимых с Qt. Натыкался на статьи, в т.ч. здесь, об обертках, но их использование мне показалось куда менее практичным, чем даже существующее С++ API.
Читать дальше →

Упрощаем работу с базами данных в Qt с помощью QSqlRelationalTableModel

Время на прочтение5 мин
Охват и читатели18K
Доброго времени суток, Хабровчане! В этой статье я хочу рассказать о своем опыте упрощения взаимодействия с базами данных SQL при разработке десктопного приложения с помощью класса QSqlRelationalTableModel кроссплатформенной библиотеки Qt.

Пролог


С Qt я познакомился еще будучи студентом 1 курса, только начиная программировать на C++, тогда же и серьезно заинтересовался библиотекой и, с тех пор слежу за ее апдейтами. Несколько месяцев назад на работе мне дали ТЗ, в котором требовалось разработать приложение, взаимодействующее с БД SQLite. Структура базы фиксирована и заранее известна мне из ТЗ.

Приложение должно уметь удобно для оператора представлять данные, хранящиеся в базе, позволять добавлять новые записи, удалять и изменять уже существующие.

Далее я кратко опишу процесс разработки с приведением кусков кода и попытаюсь аргументированно объяснить, почему в данном случае был сделан выбор в пользу QSqlRelationalTableModel.
Все под кат!

Использование системных функций D-Bus в Sailfish OS

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

Введение


Данная статья является продолжением материала об использовании системного API в Sailfish OS и посвящена функциям D-Bus в данной операционной системе. Подробно будет разобрано взаимодействие со стандартным календарём и вспышкой. Список остальных основных функций D-Bus системы представлен в конце статьи.

Для понимания изложенного материала необходимо знание основ разработки для Sailfish OS и принципов взаимодействия с D-Bus в рамках операционной системы. Хорошей стартовой точкой являются соответствующие статьи от FRUCT:

[1] Начало разработки для Sailfish OS;
[2] Разработка для Sailfish OS: работа с D-Bus.
Читать дальше →

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