3

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

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 中做什么才能看到上下文菜单?

4

1 回答 1

1

检查是否QSystemTrayIcon::ActivationReason==QSystemTrayIcon::Context在您的SLOT. 可能因为您使用的是移动应用程序,点击模式contextmenu可能与一般操作系统不同。

好的,如果是QSystemTrayIcon::Trigger,请在您的 SLOT 中调用trayIcon->contextMenu()->popup(QPoint&),其中 QPoint 是托盘图标的位置。这样就可以了。

于 2012-05-28T13:58:55.567 回答