कोड मदद करता है, इसलिए यहां कुछ ऐसा है जो मैंने एप्लिकेशन के लिए लिखा था, कम से कम घटना के बजाय closeEvent को छोड़कर।
नोट्स:
"closeEvent (घटना)" एक ओवरराइड क्यूटी घटना है, इसलिए यह वर्ग उस खिड़की छिपाए जाने को लागू करता है में डाल दिया जाना चाहिए।
"ठीक हैक्लोस()" एक ऐसा फ़ंक्शन है जिसे आप कार्यान्वित करने पर विचार कर सकते हैं (या एक बुलियन ध्वज जिसे आप स्टोर करना चाहते हैं) क्योंकि कभी-कभी आप वास्तव में सिस्ट्रे को कम करने के बजाय एप्लिकेशन से बाहर निकलना चाहते हैं।
आपकी खिड़की को फिर से दिखाने के लिए एक उदाहरण भी है।
def __init__(self):
traySignal = "activated(QSystemTrayIcon::ActivationReason)"
QtCore.QObject.connect(self.trayIcon, QtCore.SIGNAL(traySignal), self.__icon_activated)
def closeEvent(self, event):
if self.okayToClose():
#user asked for exit
self.trayIcon.hide()
event.accept()
else:
#"minimize"
self.hide()
self.trayIcon.show() #thanks @mojo
event.ignore()
def __icon_activated(self, reason):
if reason == QtGui.QSystemTrayIcon.DoubleClick:
self.show()
स्रोत
2009-04-16 23:17:59
# "कम से कम" self.hide() self.trayIcon.show() event.ignore() –
मैं कैसे सिस्टम ट्रे आइकन नियंत्रित किया जाता है में @ लचीलेपन के लिए मोजो के सुझाव गयी। मूल कोड उस एप्लिकेशन से आया था जहां ट्रे आइकन हमेशा दिखाई देता था, self.trayIcon.hide() ऐसा था कि आइकन बाहर निकलने के बाद सिस्टम ट्रे पर चिपकने वाला नहीं था (सामान्य विंडोज व्यवहार, दुख की बात है)। ध्यान दें कि अब उपयोगकर्ता को showEvent (event) विधि को लागू करना होगा और इस उदाहरण को पूरा करने के लिए self.trayIcon.hide() को कॉल करना होगा। मुझे बस पहले स्थान पर एक न्यूनतम/पुनर्स्थापना-उदाहरण पोस्ट करना चाहिए था :) –