Я пытаюсь разработать какую-нибудь программу в QT с QT SDK. Вчера я читал об Unity Launcher API на официальном сайте Ubuntu. Но есть пример только для Vala и Python. Можно использовать Unity Launcher API (быстрые списки, счетчики и индикаторы выполнения) с языком C ++ и, если это возможно, пожалуйста, опубликуйте пример.
10
Ответы:
Я также изучаю Qt и пытался найти способ использовать Unity API в Qt, я мог использовать только Dbus API, но безуспешно с Quicklist, так как ему нужен DbusMenu, и я не знаю, как это реализовать (все еще учусь :) ).
Это пример, который я создал для себя, и я надеюсь, что это полезно для других. Может быть, разработчики Unity помогут исправить / исправить / добавить новый код (быстрый список) к нему :)
скачать пример здесь http://ubuntuone.com/1SLDPcN9OhrU6LD1wgDs3r
источник
QT += dbus
)/usr/include/unity/unity/unity.h:7: error: glib.h: No such file or directory
), но яlibglib2.0-dev
установил.В настоящее время нет специальной библиотеки для доступа к функциональности модуля запуска из Qt C ++. Есть библиотека libunity, но она сильно ориентирована на glib, поэтому относительно не подходит для Qt. Как упоминалось в другом ответе, наиболее удобный способ интеграции с модулем запуска - использовать низкоуровневый API-интерфейс dbus .
Основная концепция интеграции с модулем запуска заключается в отправке на модуль запуска сигнала с идентификатором приложения и набором свойств. Идентификатор приложения - это имя файла .desktop, обычно хранящегося в
/usr/share/applications
:счетчик
Чтобы установить счетчик, вам нужно установить свойства так, чтобы счетчик был видимым, и дать ему желаемое целочисленное значение:
Индикатор
Чтобы установить индикатор выполнения, вам нужно установить свойства так, чтобы прогресс был видимым, и дать ему желаемое двойное значение:
Quicklist
Быстрый список можно настроить с помощью библиотеки Qbus dbusmenu. Вам нужно будет включить заголовочный файл:
Быстрый список создается как
QMenu
меню в Qt. Это меню «экспортируется» через dbusmenu с помощьюDBusMenuExporter
объекта. При экспорте вы даете этому объекту уникальный путь, а затем ссылаетесь на этот путь, чтобы указать элементу запуска, какое меню отображать в качестве быстрого списка.В объявлении класса главного окна добавьте следующие переменные экземпляра:
Затем в функции конструктора:
Чтобы добавить элементы в меню, используйте метод [addAction] (http: //qt-project.org/doc/qt-5.0/qtwidgets/qmenu.html#addAction) меню, чтобы добавить [QAction] (http: / /qt-project.org/doc/qt-5.0/qtwidgets/qaction.html) объекты.
Чтобы установить быстрый список значка запуска, установите свойство «быстрый список» для сигнала:
Настройка файла проекта
Вам нужно будет настроить файл .pro для добавления Dbus поддержки:
QT += dbus
. Для сборки с поддержкой быстрого списка вам нужно установить библиотеки разработки dbusmenu-qt (libdbusmenu*dev
). Затем вы можете добавить следующее в файл проекта, чтобы включить библиотеку dbusmenu:Пример приложения
Чтобы увидеть полный пример использования всех функций запуска из Qt, посмотрите на этот проект Github .
источник