Я только что установил Ubuntu 19.04 и использую дистрибутив Qt, который он предоставляет в репозитории apt-get. Я вижу, что сигналы QSytemTrayIcon не испускаются при щелчке мыши. Мне известны проблемы с «активированным» сигналом, поэтому я также подключил слот для прослушивания сигнала «aboutToShow» из контекстного меню QSystemTrayIcon, который также должен выдаваться при щелчке мыши. Ни один из этих сигналов не выходит.
Вот мой код для QSystemTrayIcon:
// Create tray and setup tray icon
void MyClass::createTrayIcon()
{
m_pTrayIconMenu = new QMenu(this);
m_pTrayImage = new QPixmap(IMG_SMALL_NOT_CONNECTED);
m_pTrayIcon = new QSystemTrayIcon(this);
m_pTrayIcon->setContextMenu(m_pTrayIconMenu);
QIcon icon(*m_pTrayImage);
m_pTrayIcon->setIcon(icon);
setWindowIcon(icon);
m_pTrayIcon->show();
connect(m_pTrayIconMenu, SIGNAL(aboutToShow()),
this, SLOT(onActivated()));
connect(m_pTrayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
this, SLOT(onActivated(QSystemTrayIcon::ActivationReason)));
}
// Slot to handle context menu aboutToShow signal
void MyClass::onActivated()
{
if (!this->isVisible())
{
this->show();
}
else
{
this->hide();
}
}
// Slot to handle tray icon activated signal
void MyClass::onActivated(QSystemTrayIcon::ActivationReason r)
{
if (r == QSystemTrayIcon::Trigger)
{
if (!this->isVisible())
{
this->show();
}
else
{
this->hide();
}
}
}
В Ubuntu 18.04 все сигналы испускались, и все работало нормально. В Ubuntu 19.04 сигналы не излучаются.