Estou tentando desenvolver algum programa no QT com o QT SDK. Ontem eu estava lendo sobre a API do Unity Launcher no site oficial do Ubuntu. Mas há exemplo apenas para Vala e python. É possível usar a API do Unity Launcher (listas rápidas, contadores e barras de progresso) com linguagem C ++ e, se possível, poste um exemplo.
application-development
qt
c++
unity
kv1dr
fonte
fonte
Respostas:
Também estou aprendendo Qt e tentei encontrar uma maneira de usar a API do Unity no Qt, só consegui usar a API Dbus, mas não tive sorte com o Quicklist, pois ele precisa de um DbusMenu e não sei como implementá-lo (ainda estou aprendendo :) )
Este é o exemplo que eu criei para mim e espero que seja útil para os outros. Talvez os desenvolvedores do Unity possam ajudar a corrigir / corrigir / adicionar novo código (lista rápida) a ele :)
faça o download do exemplo aqui http://ubuntuone.com/1SLDPcN9OhrU6LD1wgDs3r
fonte
QT += dbus
/usr/include/unity/unity/unity.h:7: error: glib.h: No such file or directory
), mas eulibglib2.0-dev
instalei.No momento, não existe uma biblioteca específica para acessar a funcionalidade do iniciador no Qt C ++. Existe uma biblioteca de comunidade, mas ela é bastante orientada, portanto é relativamente inadequada para o Qt. Conforme mencionado na outra resposta, a maneira mais conveniente de integrar-se ao iniciador é usar a API dbus de baixo nível .
O conceito básico de como integrar-se ao iniciador é enviar um sinal ao iniciador com um ID do aplicativo e um conjunto de propriedades. O ID do aplicativo é o nome do arquivo .desktop, normalmente armazenado em
/usr/share/applications
:Contador
Para definir o contador, você precisará definir as propriedades para que a contagem fique visível e forneça o valor inteiro desejado:
Barra de progresso
Para definir a barra de progresso, você precisará definir as propriedades para que o progresso seja visível e forneça o valor duplo desejado:
Lista rápida
A lista rápida pode ser definida usando a biblioteca dbusmenu Qt. Você precisará incluir o arquivo de cabeçalho:
A lista rápida é criada como um
QMenu
menu no Qt. Este menu é 'exportado' no dbusmenu usando umDBusMenuExporter
objeto. Ao exportar, você atribui a esse objeto um caminho único e, em seguida, faz referência a esse caminho para informar ao item do iniciador qual menu exibir como uma lista rápida.Na sua declaração de classe da janela principal, adicione as seguintes variáveis de instância:
Então, na função construtora:
Para adicionar itens ao menu, use o método [addAction] (http: //qt-project.org/doc/qt-5.0/qtwidgets/qmenu.html#addAction) do menu para adicionar [QAction] (http: / /qt-project.org/doc/qt-5.0/qtwidgets/qaction.html).
Para definir a lista rápida do ícone do iniciador, defina a propriedade 'lista rápida' do sinal:
Configurando o arquivo de projeto
Você precisará configurar o arquivo .pro para adicionar suporte dbus:
QT += dbus
. Para criar com o suporte da lista rápida, você precisará ter as bibliotecas de desenvolvimento dbusmenu-qt (libdbusmenu*dev
) instaladas. Você pode adicionar o seguinte ao arquivo do projeto para incluir a biblioteca dbusmenu:Exemplo de aplicação
Para ver um exemplo completo usando toda a funcionalidade do iniciador do Qt, veja este projeto do Github .
fonte