Есть похожие вопросы к этому, но они не решают мою проблему.
У меня просто простой класс MainWindow, который появляется при запуске. Конструктор содержит этот код:
QWidget* centralWidget = new QWidget(this);
this->setCentralWidget( centralWidget );
QSystemTrayIcon a;
a.setIcon( QIcon::fromTheme("edit-undo") );
a.setVisible( true );
a.show();
a.showMessage( tr( "Title" ), tr( "Message - Test" ) );
Это просто окно с центральной версией для более поздней версии. Я просто хотел проверить QSystemTrayIcon, но он не отображается. Значок на 100% правильный, так что это не проблема.
Кто-нибудь знает, что случилось? Я нахожусь в системе Linux (Ubuntu 12.04).
QSystemTrayIcon не является указателем.
Поэтому он уничтожается, как только вы покидаете тело конструктора.
Решение: сделайте личный указатель своего класса и соответствующим образом обработайте его уничтожение при выходе.