2011-09-27 32 views
5

क्या कोई तरीका है कि मैं gtk को स्वचालित रूप से gtk.main_quit() पर कॉल करने के लिए कह सकता हूं जब एप्लिकेशन की आखिरी खुली विंडो बंद/नष्ट हो जाती है?पिछली विंडो बंद/नष्ट होने के बाद एक pygtk एप्लिकेशन को कैसे छोड़ें

यदि इस कार्यक्षमता की पेशकश करने वाली कोई सीधी सुविधा नहीं है, तो मैं निम्नलिखित के बारे में सोच सकता हूं: विंडो की विध्वंस विधि में: प्रक्रिया में खुली खिड़कियों की एक सूची प्राप्त करें, अगर इसकी खाली छोड़ दी गई हो। क्या ऐसी सूची पाने का कोई तरीका है?

स्पष्ट समाधान सभी खुली खिड़कियों के मैन्युअल रूप से ट्रैक रखना होगा, लेकिन यदि संभव हो तो मैं इससे बचना चाहूंगा।

+1

पर कॉल करके घोंसले का स्तर बढ़ाया गया है। क्या आपने [PyGTK संदर्भ (विंडो-get-toplevels)] (http: // लाइब्रेरी] पर देखा है .gnome.org/devel/pygtk/स्थिर/class-gdkwindow.html # function-gdk - window-get-toplevels) – spicavigo

उत्तर

7

मुख्य विंडो के संकेत को नष्ट जीटीके main_quit से कनेक्ट होना आवश्यक:

window.connect("destroy", gtk.main_quit) 
+1

मुझे लगता है कि ओपी का मतलब ऐसी स्थिति है जहां कई मुख्य विंडो हैं। एक शब्द संपादक के बारे में सोचें जो प्रत्येक सक्रिय दस्तावेज़ के लिए एक नई विंडो खोलता है। – patrys

+0

यदि ऐसा है, तो कोई भी खुली खिड़कियों की गिनती कर सकता है, जब एक नष्ट हो जाता है तो एक वैश्विक चर में जोड़ना और नष्ट होने पर घटाना पर्याप्त होना चाहिए, सूची रखने की आवश्यकता नहीं है। – Louis

+1

यदि आप एप्लिकेशन तर्क के अनुरूप हैं तो आप GtkAplpliction का भी उपयोग कर सकते हैं। यह बेहतर होगा और जीटीके एप्लीकेशन आपके लिए उस तर्क को संभालेगा। – erick2red

2

मुख्य पाश की वर्तमान नेस्टिंग स्तर प्राप्त करने के लिए विधि gtk.main_level() का प्रयोग करें। Gtk.main() फ़ंक्शन को कॉल करके gtk.main_quit() फ़ंक्शन