У меня есть QMenu, который находится в QSystemTrayIcon. Оба являются членами объекта QMainWindow.
Я хочу, чтобы QMenu QSystemTrayIcon действовал одинаково при щелчке правой кнопкой мыши (т. е. по причине QSystemTrayIcon::Context) и при одиночном щелчке левой кнопкой мыши (т. е. по причине QSystemTrayIcon::Trigger).
Поведение правой кнопки мыши по умолчанию действует так, как я этого хочу. Однако я не могу понять, как заставить левый щелчок действовать точно так же, как правый щелчок. Мои усилия до сих пор приводят меня к:
void MainWindow::iconActivated(QSystemTrayIcon::ActivationReason reason)
{
if(reason==QSystemTrayIcon::Trigger) trayIcon->contextMenu()->popup(QCursor::pos());
}
Однако меню не исчезает, когда оно теряет фокус, тогда как вызов контекстного меню с помощью правого щелчка заставляет его исчезнуть, когда фокус теряется.
Есть ли способ заставить Trigger действовать как Context? Может быть, способ бросить фиктивный сигнал или что-то в этом роде?