2013-02-23 44 views
6

से रोकें दो विंडोज मैं इस तरह, कुछ सरल कोड है कहते हैं: Toplevel(root) खिड़की और Tk() खिड़की:उच्चस्तरीय: उद्घाटन

from Tkinter import * 
root = Tk() 
app = Toplevel(root) 
app.mainloop() 

यह दो खिड़कियां खुल जाता है।

क्या Tk() विंडो (root) से खुलने से बचना संभव है? यदि हां, तो कैसे? मैं केवल अपूर्ण चाहता हूँ। मैं ऐसा इसलिए करना चाहता हूं क्योंकि मैं एक प्रोग्राम बना रहा हूं जिसमें एकाधिक विंडोज़ खुलने होंगे, जो सभी Toplevelroot हैं।

धन्यवाद!

उत्तर

10

withdraw() विधि स्क्रीन से विंडो को हटा देती है।
iconify() विधि विंडो को कम करता है, या इसे एक आइकन में बदल देता है।
deiconify() विधि विंडो को फिर से खींचा जाएगा, और/या इसे सक्रिय करेगा।

यदि आप withdraw() चुनते हैं, तो सुनिश्चित करें कि आपने परीक्षण से पहले प्रोग्राम से बाहर निकलने का एक नया तरीका माना है।
उदा।

from Tkinter import * # tkinter in Python 3 

root = Tk() 
root.withdraw() 

top = Toplevel(root) 
top.protocol("WM_DELETE_WINDOW", root.destroy) 

but = Button(top, text='deiconify') 
but['command'] = root.deiconify 
but.pack() 

root.mainloop() 

protocol() विधि एक समारोह है कि जब
उच्चस्तरीय खिड़की के बंद करें बटन दबाया जाता है बुलाया जाएगा रजिस्टर करने के लिए इस्तेमाल किया जा सकता। इस मामले में हम बाहर निकलने के लिए destroy() का उपयोग कर सकते हैं।