Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 是否可以在Windows Mobile/CE下将上下文菜单与QSystemTrayIcon一起使用?_Qt_Windows Mobile_Windows Ce - Fatal编程技术网

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。