Qt 是否可以在Windows Mobile/CE下将上下文菜单与QSystemTrayIcon一起使用?
我用关联菜单创建了托盘图标,并将其激活信号附加到对话框中的插槽:Qt 是否可以在Windows Mobile/CE下将上下文菜单与QSystemTrayIcon一起使用?,qt,windows-mobile,windows-ce,Qt,Windows Mobile,Windows Ce,我用关联菜单创建了托盘图标,并将其激活信号附加到对话框中的插槽: trayIconMenu = new QMenu(this); trayIconMenu->addAction(showAction); trayIconMenu->addAction(quitAction); trayIcon = new QSystemTrayIcon(this); trayIcon->setContextMenu(trayIconMenu); trayIcon->setIcon(QI
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中做什么才能看到上下文菜单?检查
插槽中的QSystemTrayIcon::ActivationReason==QSystemTrayIcon::context
。可能是因为您正在使用移动应用程序,请单击“模式”以查看contextmenu
可能与常规操作系统不同
好的,如果它是QSystemTrayIcon::Trigger
,则在您的插槽中调用trayIcon->contextMenu()->弹出(QPoint&)
,其中QPoint是trayIcon的位置。这就可以了。在我的示例中,插槽被调用的原因==QSystemTrayIcon::Trigger。我几乎可以肯定点击模式是不同的。不幸的是,我不知道是否可以从windows mobile中的系统托盘图标激活上下文菜单。如果原因是QSystemTrayIcon::Trigger,为什么您希望弹出上下文菜单?尝试不同的点击模式,我相信你最终会找到对应于QSystemTrayIcon::context的点击模式。你说“不同的点击模式”是什么意思?我尝试了简单单击(生成QSystemTrayIcon::Trigger)和双击(生成QSystemTrayIcon::DoubleClick)。我还可以尝试什么样的点击模式?其他按钮或功能键。无论如何,试试我刚才指定的方法。如果我有trayIcon位置的QPoint,你的方法可以工作。不幸的是,trayIcon->geometry()返回带有左上角坐标(0,0)和右下角坐标(-1,-1)的QRect。