Есть похожие вопросы к этому, но они не решили мою проблему.
У меня просто простой класс 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 не является указателем.
Следовательно, он уничтожается, как только вы покидаете тело конструктора.
Решение: сделать приватный указатель членом вашего класса и правильно обработать его уничтожение при выходе.
Других решений пока нет …