2013-03-09 4 views
6

अब, मुझे पता है तुम एक खिड़की के पास मौजूद है, तो इस बात की जाँच कर सकते हैं कि:कैसे देखें यह देखने के लिए कि विजेट Tkinter में मौजूद है या नहीं?

x.winfo_exists() 

कौन सा एक बूलियन देता है। अब मैंने खोज की है लेकिन मुझे जो कुछ चाहिए उसे ढूंढने में सक्षम नहीं है। अधिक विशेष रूप से मुझे अपने बटन, लेबल, सूची बॉक्स, स्लाइडर इत्यादि के अस्तित्व की जांच करने की आवश्यकता है

+1

आपका प्रश्न अस्पष्ट है। आप कहते हैं कि आप जानते हैं कि आप एक विजेट मौजूद है या नहीं, यह जानने के लिए आप 'winfo_exists' को कॉल कर सकते हैं, लेकिन आप नहीं जानते कि _your_ विजेट मौजूद हैं या नहीं? –

+0

नहीं, यह देखने के लिए कि कोई विंडो मौजूद है या नहीं। मुझे नहीं पता था कि यह विजेट्स के लिए भी काम करता है जब तक मुझे यह जवाब नहीं मिला। जो भी हो धन्यवाद। – madprogramer

उत्तर

15

winfo_exists 1 तब तक लौटाता है जब तक आप विजेट को नष्ट नहीं कर देते हैं, इस मामले में यह 0 लौटाता है। इस विधि को किसी भी विजेट क्लास पर कॉल किया जा सकता है , न केवल रूट रूट या टोपवेल। वैकल्पिक रूप से, आप winfo_children के साथ एक विजेट के सभी बच्चों प्राप्त कर सकते हैं:

>>> import Tkinter as tk 
>>> root = tk.Tk() 
>>> label = tk.Label(root, text="Hello, world") 
>>> label.winfo_exists() 
1 
>>> root.winfo_children() 
[<Tkinter.Label instance at 0x0000000002ADC1C8>] 
>>> label.destroy() 
>>> label.winfo_exists() 
0 
>>> root.winfo_children() 
[] 
+0

यदि आपने फ्रेम ऑब्जेक्ट को "रूट" (या सीधे से नहीं बनाया जा रहा है) में वापस नहीं किया है, तो आप 'label.destroy() 'करने में सक्षम नहीं होंगे, लेकिन आप अभी भी रूट पर खोज और पुन: प्रयास कर सकते हैं। winfo_children() 'सूची। उदाहरण के लिए, 'root.winfo_children() [0] .destroy() 'या' root.winfo_children() [1] .destroy() 'यदि आपके पास शीर्ष पर मेनू है। वैसे भी आपके द्वारा उपयोग किए जाने वाले प्रत्येक फ्रेम के लिए हैंडल बनाना अधिक आसान है, साथ ही मुख्य फ्रेम के अंदर प्रत्येक बटन/लेबल/आदि डालें। – erm3nda

1

तुम भी प्रकार अर्थात .. प्रकार (लेबल) मुद्रित कर सकते हैं। यह न केवल अस्तित्व प्रदान करने में सहायक हो सकता है, बल्कि यह भी पता लगा सकता है कि कुछ भी बिना किसी त्रुटि के 'कोई नहीं टाइप' आ रहा है। प्रकार() आपको बताएगा कि क्या आपके पास कोई उदाहरण है, या अन्य प्रकार जो मूल्यवान सुराग प्रदान कर सकता है कि प्रोग्राम कितना करीब प्रदर्शन कर रहा है या आइटम को वापस लौट रहा है जो आप सोच रहे हैं! Object.winfo_exists() और object.winfo_children विशिष्ट है, और ऑब्जेक्ट एक प्रकार 'इंस्टेंस' नहीं है, तो एक त्रुटि के माध्यम से होगा।

+0

[एक अच्छा जवाब कैसे लिखें] (http://stackoverflow.com/help/how-to-answer) – Manish

संबंधित मुद्दे

 संबंधित मुद्दे