Я изучаю, как создавать и развертывать приложение 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
показывает, что системный лоток доступен.
Заранее спасибо.