मैंने अपने ऐप के लिए सिस्टम ट्रे आइकन सेट अप किया है और इसमें एक सरल संदर्भ मेनू संलग्न किया है। यदि मैं संदर्भ मेनू लाने के लिए आइकन पर राइट क्लिक करता हूं तो यह ठीक काम करता है। यदि मैं फिर कहीं क्लिक करता हूं जो ऐप का ध्यान खो देता है (उदाहरण के लिए टास्क बार या अन्य ऐप पर कहीं और) संदर्भ मेनू हटाया नहीं जाता है और क्लिक करते समय भी सही कार्रवाई को ट्रिगर करता है। यदि, हालांकि, मैं मुख्य ऐप पर क्लिक करता हूं तो संदर्भ मेनू अपेक्षित के रूप में गायब हो जाता है।क्यूटी सिस्टम ट्रे संदर्भ मेनू तब रहता है जब ऐप फोकस
actionExit = new QAction("Exit", this);
connect(actionExit, SIGNAL(triggered()), this, SLOT(ExitClient()));
myTrayIconMenu = new QMenu(this);
myTrayIconMenu->addAction(actionExit);
trayIcon = new QSystemTrayIcon(icon, this);
trayIcon->setContextMenu(myTrayIconMenu);
connect(systrayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
this, SLOT(ToggleVisibility(QSystemTrayIcon::ActivationReason)));
trayIcon->show();
मैं अपने खुद के कोड है कि एप्लिकेशन फोकस खोने ताकि मैं मैन्युअल रूप से संदर्भ मेनू छिपा कर सकते हैं के लिए परीक्षण जोड़ने की आवश्यकता है -
यहाँ ट्रे आइकन और संदर्भ मेनू बनाने के लिए प्रासंगिक कोड है? मैं इस कार्यक्षमता में निर्माण किया जाएगा मान लिया था
[समस्या विंडोज 7 में हो रहा है, दृश्य स्टूडियो 2010 प्रो के माध्यम से क्यूटी प्लग-इन के साथ संकलन - मैं किसी भी अन्य ओएस के तहत परीक्षण नहीं किया]।
मैं एपीआई दस्तावेज में यह देखा -
नोट: सिस्टम ट्रे आइकन मेनू का स्वामित्व नहीं लेता है। आपको यह सुनिश्चित करना होगा कि उचित समय पर हटा दिया गया हो, उदाहरण के लिए, उचित मूल ऑब्जेक्ट के साथ मेनू बनाना।
अगर मैं का उपयोग करते हैं एप्लिकेशन फोकस खो देता है
myTrayIconMenu = new QMenu();
बजाय
myTrayIconMenu = new QMenu(this);
संदर्भ मेनू निकाल दिया जाता है। लेकिन फिर मुझे संदर्भ मेनू को मैन्युअल रूप से हटाने का ख्याल रखना होगा।
अन्य लोगों ने इस स्थिति के साथ कैसे निपटाया है?
नई QMenu() संकेत के लिए धन्यवाद! यह मेरी समस्या हल हो गई है। –