Не исчезает контекстное трея
Вопрос следующий
В трее висит иконка
На неё повешено контекстное меню
Код конструктора класса трея, наглядно описывающий суть работы:
Код:
SystemTray::SystemTray(QWidget* pwgt) : SettingsForm(pwgt) {
QAction* pactShowHide = new QAction(tr("Settings"), this);
connect(pactShowHide, SIGNAL(triggered()),
this, SLOT(slotShowHide())
);
QAction* pactQuit = new QAction(tr("Quit"), this);
connect(pactQuit, SIGNAL(triggered()), qApp, SLOT(quit()));
m_ptrayIconMenu = new QMenu(this);
m_ptrayIconMenu->addAction(pactShowHide);
m_ptrayIconMenu->addAction(pactQuit);
m_ptrayIcon = new QSystemTrayIcon(this);
m_ptrayIcon->setContextMenu(m_ptrayIconMenu);
m_ptrayIcon->setToolTip(tr("Update Scanner"));
m_ptrayIcon->setIcon(QPixmap("icon.png"));
m_ptrayIcon->show();
}
QAction* pactShowHide = new QAction(tr("Settings"), this);
connect(pactShowHide, SIGNAL(triggered()),
this, SLOT(slotShowHide())
);
QAction* pactQuit = new QAction(tr("Quit"), this);
connect(pactQuit, SIGNAL(triggered()), qApp, SLOT(quit()));
m_ptrayIconMenu = new QMenu(this);
m_ptrayIconMenu->addAction(pactShowHide);
m_ptrayIconMenu->addAction(pactQuit);
m_ptrayIcon = new QSystemTrayIcon(this);
m_ptrayIcon->setContextMenu(m_ptrayIconMenu);
m_ptrayIcon->setToolTip(tr("Update Scanner"));
m_ptrayIcon->setIcon(QPixmap("icon.png"));
m_ptrayIcon->show();
}
Проблема в том, что если вызвать контекстное меню и нажать в произвольную точку на экране (но не на меню) - оно не исчезнет и так и будет висеть до тех пор, пока не нажмёшь на какой-либо его пункт
Притом, оно уходит на задний план
Если кто-то сталкивался с подобной проблемой, поделитесь, пожалуйста, знаниями касаемо её решения
Буду признателен за любой совет!
заместо
Код:
m_ptrayIconMenu = new QMenu(this);
m_ptrayIcon = new QSystemTrayIcon(this);
m_ptrayIcon = new QSystemTrayIcon(this);
написать
Код:
m_ptrayIconMenu = new QMenu();
m_ptrayIcon = new QSystemTrayIcon();
m_ptrayIcon = new QSystemTrayIcon();
Тебе тогда их и динамическими не надо делать.