是否可以在Windows Mobile / CE下使用带有QSystemTrayIcon的上下文菜单?

时间:2012-05-28 13:34:06

标签: qt windows-mobile windows-ce

我创建了带有上下文菜单的托盘图标,并将其激活的信号附加到我的对话框中的插槽中:

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中看一下上下文菜单呢?

1 个答案:

答案 0 :(得分:1)

检查QSystemTrayIcon::ActivationReason==QSystemTrayIcon::Context中是否SLOT。可能与使用移动应用程序时一样,contextmenu的点击模式可能与常规操作系统不同。

好的,如果它是QSystemTrayIcon::Trigger,请在您的SLOT中调用trayIcon->contextMenu()->popup(QPoint&),其中QPoint是trayIcon的位置。这样做。