我创建了带有上下文菜单的托盘图标,并将其激活的信号附加到我的对话框中的插槽中:
trayIconMenu = new QMenu(this);
trayIconMenu->addAction(showAction);
trayIconMenu->addAction(quitAction);
trayIcon = new QSystemTrayIcon(this);
trayIcon->setContextMenu(trayIconMenu);
trayIcon->setIcon(QIcon(":/images/gear.png"));
trayIcon->show();
trayIcon->showMessage(tr("SSTRNL-B"),tr("Message from tray icon!"));
QObject::connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
this, SLOT(trayactivated(QSystemTrayIcon::ActivationReason)));
单击托盘图标时,我的插槽被调用。所以一切都正常,除了我看不到附加到QSystemTrayIcon的上下文菜单。
在桌面系统中,我们可以右键单击托盘图标以查看其上下文菜单。但是我应该在Windows mobile / CE中看一下上下文菜单呢?
答案 0 :(得分:1)
检查QSystemTrayIcon::ActivationReason==QSystemTrayIcon::Context
中是否SLOT
。可能与使用移动应用程序时一样,contextmenu
的点击模式可能与常规操作系统不同。
好的,如果它是QSystemTrayIcon::Trigger
,请在您的SLOT中调用trayIcon->contextMenu()->popup(QPoint&)
,其中QPoint是trayIcon的位置。这样做。