आपके पास कोई अन्य विजेट नहीं है इसलिए यह जानना मुश्किल है कि आप अन्य विजेट कहां चाहते हैं। यहां मैं आपको बता सकता हूं कि: dataPlot.get_tk_widget().pack(side=TOP, fill=BOTH, expand=1)
करके आप टिंकर को साजिश के साथ स्क्रीन भरने के लिए कह रहे हैं। यह, क्योंकि आप इसे सभी दिशाओं (fill=BOTH
) भरने के लिए कहते हैं और किसी अतिरिक्त स्थान को भरने के लिए विस्तारित करते हैं (expand=1
)।
हालांकि, आप अभी भी अन्य विजेट जोड़ सकते हैं। pack
एक कंटेनर के एक तरफ विजेट डालने से काम करता है। आपका कंटेनर, master
, हमेशा चार पक्ष होते हैं। तो, उदाहरण के लिए, यदि आप एक उपकरण पट्टी आप की तरह कुछ करना होगा बनाना चाहता था:
toolbar = tk.Frame(master)
button = tk.Button(toolbar, text="Push me")
button.pack(side="left") # left side of parent, the toolbar frame
toolbar.pack(side=TOP, fill="x") # top of parent, the master window
सूचना है कि यदि आप कोड के बाद इस कोड डाल जहां pack
साजिश, उपकरण पट्टी ऊपर तल पर पता चलता ! ऐसा इसलिए है क्योंकि TOP
, BOTTOM
, आदि किसी अन्य विजेट द्वारा छोड़े गए स्थान का संदर्भ लें जो पहले से ही pack
ed है। साजिश ऊपर ले जाती है, नीचे की जगह नीचे की जगह है। इसलिए जब आप TOP
निर्दिष्ट करते हैं तो इसका अर्थ यह है कि "जो भी पहले से ऊपर है, नीचे दिए गए क्षेत्र के शीर्ष पर"।
तो, आपके पास कुछ विकल्प हैं। सबसे अच्छा विकल्प है कि आप अपने विजेट को उस क्रम में बनाना चाहते हैं, जिसे आप दिखाना चाहते हैं। यदि आप pack
pack
प्लॉट से पहले शीर्ष पर टूलबार हैं, तो यह टूलबार होगा जो बहुत ऊपर दिखाई देता है। इसके अलावा, आप शीर्ष के बजाय साजिश को नीचे रख सकते हैं और इससे भी समस्या हल हो जाएगी।
वैसे, मैं आम तौर पर एक ब्लॉक में अपने विजेट बना देता हूं, फिर उन्हें एक अलग ब्लॉक में रखता हूं। मुझे लगता है कि यह कोड को बनाए रखने में आसान बनाता है।
एक अन्य विकल्प है जो आपके मानसिक मॉडल बेहतर फिट हो सकता grid
बजाय pack
है। grid
के साथ आप विजेट (पंक्तियों) और स्तंभ (ओं) चुन सकते हैं जो विजेट पर कब्जा करते हैं। यह चीजों को ग्रिड में रखना आसान बनाता है, लेकिन थोड़ा और कोड उपयोग करने के खर्च पर।
उदाहरण के लिए, सबसे ऊपर टूलबार और साजिश नीचे डाल करने के लिए नीचे दिए गए आप क्या कर सकते हैं:
toolbar.grid(row=1, column=1, sticky="ew")
dataPlot.get_tk_widget().grid(row=1, column=1, sticky="nsew")
master.grid_rowconfigure(0, weight=0)
master.grid_rowconfigure(1, weight=1)
master.grid_columnconfigure(0, weight=1)
सूचना है कि पंक्तियों और स्तंभों शून्य से शुरू। इसके अलावा, "वजन" यह दर्शाता है कि यह विजेट अन्य विगेट्स के सापेक्ष कितना विस्तार करता है। बराबर वजन की दो पंक्तियों के साथ, जब खिड़की का आकार बदलता है तो वे समान रूप से विस्तारित होंगे। शून्य का वजन कोई विस्तार नहीं है। एक पंक्ति के लिए 2 का वजन, और दूसरे के लिए 1 का मतलब है कि पूर्व बाद के जितना दोगुना विस्तार करेगा।
अधिक जानकारी के लिए this page on grid, और this page on pack देखें।
पूरी तरह से असंबंधित नोट पर आपकी पोस्ट 'matplotlib.figure.Figure' को लागू करने के तरीके को सीखने के लिए मेरे प्रोग्राम को काम करने के लिए बहुत उपयोगी थी। धन्यवाद। – deadstump