Estoy tratando de desarrollar algún programa en QT con QT SDK. Ayer estaba leyendo sobre Unity Launcher API en el sitio web oficial de ubuntu. Pero solo hay ejemplos para Vala y Python. Es posible usar la API de Unity Launcher (listas rápidas, contadores y barras de progreso) con lenguaje C ++ y, si es posible, publique un ejemplo.
application-development
qt
c++
unity
kv1dr
fuente
fuente
Respuestas:
También estoy aprendiendo Qt y traté de encontrar una manera de usar Unity API en Qt, solo pude usar Dbus API, pero no tuve suerte con Quicklist ya que necesita un DbusMenu y no sé cómo implementar eso (todavía estoy aprendiendo :) )
Este es el ejemplo que creé para mí mismo y espero que sea útil para otros. Tal vez los desarrolladores de Unity puedan ayudar a corregir / corregir / agregar un nuevo código (lista rápida) :)
descargue el ejemplo aquí http://ubuntuone.com/1SLDPcN9OhrU6LD1wgDs3r
fuente
QT += dbus
)/usr/include/unity/unity/unity.h:7: error: glib.h: No such file or directory
), pero lo helibglib2.0-dev
instalado.Actualmente no hay una biblioteca específica para acceder a la funcionalidad del iniciador desde Qt C ++. Hay una biblioteca de libunidad, pero está orientada en gran medida, por lo que es relativamente inadecuada para Qt. Como se menciona en la otra respuesta, la forma más conveniente de integrarse con el iniciador es utilizar la API dbus de bajo nivel .
El concepto básico de cómo integrarse con el iniciador es enviar una señal al iniciador con un ID de aplicación y un conjunto de propiedades. El ID de la aplicación es el nombre del archivo .desktop, normalmente almacenado en
/usr/share/applications
:Mostrador
Para establecer el contador, deberá establecer las propiedades de modo que el recuento sea visible y darle el valor entero deseado:
Barra de progreso
Para establecer la barra de progreso, deberá establecer las propiedades de modo que el progreso sea visible y darle el doble valor deseado:
Lista rápida
La lista rápida se puede configurar utilizando la biblioteca dbusmenu Qt. Deberá incluir el archivo de encabezado:
La lista rápida se crea como un
QMenu
menú en Qt. Este menú se 'exporta' a través de dbusmenu usando unDBusMenuExporter
objeto. Al exportar, le da a este objeto una ruta única y luego hace referencia a esa ruta para indicarle al elemento del iniciador qué menú mostrar como lista rápida.En su declaración de clase de ventana principal, agregue las siguientes variables de instancia:
Luego, en la función constructora:
Para agregar elementos al menú, utilice el método [addAction] (http: //qt-project.org/doc/qt-5.0/qtwidgets/qmenu.html#addAction) del menú para agregar [QAction] (http: / /qt-project.org/doc/qt-5.0/qtwidgets/qaction.html) objetos.
Para configurar la lista rápida del icono del iniciador, configure la propiedad 'lista rápida' de la señal:
Configurar el archivo del proyecto
Usted tendrá que configurar el archivo .pro para añadir soporte dbus:
QT += dbus
. Para construir con soporte de lista rápida, necesitará tener instaladas las bibliotecas de desarrollo dbusmenu-qt (libdbusmenu*dev
). Luego puede agregar lo siguiente al archivo del proyecto para incluir la biblioteca dbusmenu:Aplicación de ejemplo
Para ver un ejemplo completo con todas las funciones del iniciador de Qt, mira este proyecto de Github .
fuente