Реклама

Custom QQuickItem – добавляем в QML объект из C++

QML объекты в Qt весьма замечательны, с ними удобно работать, но что если стандартных объектов нам становится недостаточно? Тогда можно сделать собственный объект, запрограммировать его в C++ и внедрить в логику QML слоя. В данном уроке предлагаю сделать небольшой импровизированный таймер, который можно запустить, остановить и очистить, но при этом дизайн таймера будет разработан в C++…
Advertisement

SvgReader на Qt. Восстановление данных из файла SVG в QGraphicsScene

В прошлой статье был рассмотрен пример того, как сохранить объекты графической сцены в файл SVG, а потом мы смогли открыть его в CorelDraw. А теперь попробуем этот же самый файл открыть и восстановить графические объекты в QGraphicsScene. Отмечу, что мы не будем использовать класс QSvgRenderer для этого по той причине, что он без проблем поместит…

Сохранение объектов QGraphicsScene в файл векторной графики SVG

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

Использование windeployqt для сбора DLL

В одном из уроков по Qt уже было показано, как собрать все DLL, применяемые в проекте для подготовки программы к использованию на других ПК, работающих под управлением ОС Windows, а теперь предлагаю ознакомиться с утилитой, которая поставляется вместе с Qt. Данная утилита называется windeployqt и является консольным приложением, которое, как правило, идёт в поставке с компиляторами…

Глобальный HotKey в Linux в приложении на Qt 5.5

Работа с глобальными хоткеями в Windows является более тривиальной задачей, чем в Linux, поскольку в WinAPI имеются для этого подготовленные методы, которые не требуют большого количества кода. А также каждому хоткею устанавливается в соответствие ID, по которому данный хоткей можно удалить. В Linux/Unix, которые используют графический сервер X11, применительно к Qt необходимо использовать функции для регистрации/разрегистрации хоткеев из…

Автозапуск Qt приложения под Linux

Поговорим, о том, как добавить в Qt приложение функционал по настройке автозапуска данного приложения. Например, у нас имеется окно настроек и мы хотим сделать возможность настройки автозапуска приложения из этого диалогового окна. В отличие от автозапуска в Windows, где можно воспользоваться QSettings и внести изменения в реестр, в Linux потребуется создать специальный исполняемый файл, который…

Охота за багами при передаче указателя на QObject в QML

Одними из самых мерзких и мало предсказуемых багов являются те, которые возникают в неопределённый момент времени. К числу таких можно отнести баг, который проявляется при передаче указателя на QObject в QML слой. Проблема заключается в том, что если у QObject отсутствует родитель, то при передаче в слой QML происходит смена владельца объекта, то есть ему…

Qt Single Application – запускаем только один экземпляр приложения

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

PopUp уведомление в стиле Gnome с помощью Qt

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