connect(&trayIcon, &QSystemTrayIcon::activated, [this](QSystemTrayIcon::ActivationReason reason) {
switch (reason) {
case QSystemTrayIcon::DoubleClick:
case QSystemTrayIcon::Trigger:
if (isVisible() && !isMinimized()) {
hide();
} else {
showNormal();
activateWindow();
}
break;
default:
;
}
});
This code snippet leads to a correct behavior: