मैंने देखा है कि दोनों निर्देश tk.Tk() और tk.Frame एक नई विंडो बनाते हैं, तो उनमें क्या अंतर है? और एक के ऊपर दूसरे का उपयोग करने का क्या फायदा है?

0
hippozhipos 28 पद 2019, 00:34

1 उत्तर

सबसे बढ़िया उत्तर

मैंने देखा है कि दोनों निर्देश tk.Tk() और tk.Frame एक नई विंडो बनाते हैं

वह सही नहीं है। tk.Frame एक नई विंडो नहीं बनाएगा, इस तथ्य को छोड़कर कि कोई भी विजेट रूट विंडो के निर्माण के लिए बाध्य करेगा यदि आपने पहले से रूट विंडो नहीं बनाई है।

टिंकर एप्लिकेशन में विजेट पदानुक्रम में मौजूद होते हैं, और उस पदानुक्रम में रूट विंडो होनी चाहिए। रूट विंडो इस मायने में खास है कि इसमें पैरेंट नहीं है। अन्य सभी विगेट्स में माता-पिता होना चाहिए। प्रत्येक एप्लिकेशन में tk.Tk का एक उदाहरण होना चाहिए, और बहुत ही दुर्लभ परिस्थितियों को छोड़कर आपके पास कभी भी tk.Tk के एक से अधिक उदाहरण नहीं होने चाहिए।

tk.Frame एक फ्रेम है: एक सीमा के साथ एक विजेट और बहुत कुछ नहीं। अन्य सभी विजेट्स की तरह (tk.Tk को छोड़कर), इसमें एक पैरेंट होना चाहिए।

tk.Tk का उपयोग करने का लाभ यह है कि आपके आवेदन में इसका एक उदाहरण होना चाहिए। यदि आप एक नहीं बनाते हैं, तो आपके लिए एक बनाया जाएगा। अजगर के ज़ेन का कहना है कि स्पष्ट रूप से निहित से बेहतर है, इसलिए आपको इसे हमेशा स्पष्ट रूप से बनाना चाहिए।

tk.Frame का उपयोग करने का लाभ यह है कि यह विजेट्स को समूहों में एकत्रित करना आसान बनाता है और उन्हें एक समूह के रूप में प्रबंधित करने में सक्षम बनाता है (एक सीमा जोड़ें, उन्हें एक समूह के रूप में रखें, आदि)।

3
Bryan Oakley 27 पद 2019, 21:42