Qt 单击“其他位置”后无法隐藏TrayMenu

Qt 单击“其他位置”后无法隐藏TrayMenu,qt,Qt,我已经为QT应用程序实现了托盘图标菜单。但单击其他位置后,托盘图标菜单不会隐藏。以下是我的代码: m_trayIconMenu = new QMenu(this); m_trayIconMenu->addAction(m_restoreAction); m_trayIconMenu->addAction(m_quitAction); m_trayIcon = new QSystemTrayIcon(this); m_trayIcon->setContextMenu(m_tray

我已经为QT应用程序实现了托盘图标菜单。但单击其他位置后,托盘图标菜单不会隐藏。以下是我的代码:

m_trayIconMenu = new QMenu(this);
m_trayIconMenu->addAction(m_restoreAction);
m_trayIconMenu->addAction(m_quitAction);
m_trayIcon = new QSystemTrayIcon(this);
m_trayIcon->setContextMenu(m_trayIconMenu);

尝试删除此指针,如下所示。将m_TrayIcon菜单绑定到QSystemTrayIcon,而不是此指针的父级

m_trayIconMenu = new QMenu();
m_trayIconMenu->addAction(m_restoreAction);
m_trayIconMenu->addAction(m_quitAction);
m_trayIcon = new QSystemTrayIcon(this);
m_trayIcon->setContextMenu(m_trayIconMenu);

尝试删除此指针,如下所示。将m_TrayIcon菜单绑定到QSystemTrayIcon,而不是此指针的父级

m_trayIconMenu = new QMenu();
m_trayIconMenu->addAction(m_restoreAction);
m_trayIconMenu->addAction(m_quitAction);
m_trayIcon = new QSystemTrayIcon(this);
m_trayIcon->setContextMenu(m_trayIconMenu);

如果您在Windows中工作,则必须执行另一个win32 api setForeGroundIndow()

建议在QMenu的插槽“aboutToShow”中执行它


这个api适合我,你可以试试。

如果你在Windows中工作,必须执行另一个win32 api setForeGroundIndow()

建议在QMenu的插槽“aboutToShow”中执行它


这个api对我有用,你可以试试。

如果我单击我的主应用程序,TrayIcon菜单会消失。如果我单击我的主应用程序,TrayIcon菜单会消失。