2016-02-04 9 views
0

Я изучаю, как создавать и развертывать приложение Qt с Ubuntu 12.04. Я работаю с Qt 5.4.2, который я загрузил here. Я установил его в папку по умолчанию ~/Qt5.4.2.Минимальный пример QSystemTrayIcon в Ubuntu 12.04

В настоящее время я хочу установить значок в трее. Мой код только следующее:

#include <QApplication> 
#include <QDebug> 
#include <QIcon> 
#include <QSystemTrayIcon> 

int main(int argc, char **argv) 
{ 
    QApplication app(argc, argv); 
    QSystemTrayIcon *trayIcon = new QSystemTrayIcon(); 
    qDebug() << trayIcon->isSystemTrayAvailable(); 
    trayIcon->setIcon(QIcon("heart.png")); 
    trayIcon->show(); 
    return app.exec(); 
} 

heart.png от примера QSystemTrayIcon PyQt5, я получил его от here. Я помещал его в тот же каталог, что и исходный файл.

Я построил исполняемый файл со следующими командами.

~/Qt5.4.2/5.4/gcc_64/bin/qmake -config release 
make 

Запуск созданного файла показывает значок в трее.

Для развертывания приложения я скопировал следующие файлы в один и тот же каталог. Я получил их от ~/Qt5.4.2/5.4/gcc_64/lib:

libicudata.so.53 
libicui18n.so.53 
libicuuc.so.53 
libQt5Core.so.5 
libQt5DBus.so.5 
libQt5Gui.so.5 
libQt5Widgets.so.5 

Я также скопировал ~/Qt5.4.2/5.4/gcc_64/plugins/platforms/libqxcb.so и поместили его в директории с именем platforms.

Я тестировал добавление файла qt.conf, но это, похоже, не имеет эффекта. Его содержимое:

[Paths] 
Prefix = . 
Binaries = . 

Я скопировал весь этот каталог на виртуальную машину с компакт-диском Ubuntu 12.04. Перед запуском двоичного файла я экспортировал LD_LIBRARY_PATH=. так, чтобы он нашел включенные библиотеки Qt.

К сожалению, значок лотка не отображается, когда программа запускается в виртуальной машине. Оператор qDebug показывает, что системный лоток доступен.

Заранее спасибо.

ответ