मैं एक कार्यक्रम लिख रहा हूँ जो करना चाहिए:एकाधिक खिड़कियों के लिए टिंकर उदाहरण कोड, बटन सही तरीके से लोड क्यों नहीं होंगे?
- खुला एक बटन के प्रेस के साथ एक खिड़की।
- किसी अन्य बटन के प्रेस के साथ नई खुली विंडो बंद करें।
मैं कक्षाओं का उपयोग कर रहा हूं इसलिए मैं बाद में एक बड़े कार्यक्रम में कोड डाल सकता हूं। हालांकि, मैं अपने बटन सही तरीके से लोड नहीं कर सकता।
import tkinter as tk
class Demo1(tk.Frame):
def __init__(self):
tk.Frame.__init__(self)
self.pack()
self.master.title("Demo 1")
self.button1 = tk.Button(self, text = "Button 1", width = 25,
command = self.new_window)
self.button1.grid(row = 0, column = 1, columnspan = 2, sticky = tk.W+tk.E+tk.N+tk.S)
def new_window(self):
self.newWindow = Demo2()
class Demo2(tk.Frame):
def __init__(self):
new = tk.Frame.__init__(self)
new = tk.Toplevel(self)
new.title("Demo 2")
new.button = tk.Button(text = "Button 2", width = 25,
command = self.close_window)
new.button.pack()
def close_window(self):
self.destroy()
def main():
Demo1().mainloop()
if __name__ == '__main__':
main()
@ADB यह निर्भर करता है। आम तौर पर, दो 'Tkloop()' s को दो 'Tk()' विंडो पर चलाया जाता है। हालांकि, अगर आप कई खिड़कियां चाहते हैं, तो दो 'mainloop() 'से बचना संभव है। इस प्रकार, आप 'Toplevel()' विजेट का उपयोग कर सकते हैं जो 'Tk() 'के समान है। –
दो मेनलोप्स किसी भी चीज़ पर "निर्भर" नहीं होते हैं और यह सिर्फ "नीचे नहीं देखा जाता" है, यह गलत है। आपको केवल एक की जरूरत है। मेनलोप पर एक कॉल एक अनंत लूप है, जब आप एक से अधिक रन करते हैं तो आपके पास अनंत लूप के अंदर एक अनंत लूप होता है। आपको अपने कोड (डेमो 1.न्यू_विंडो में) में 'मेनलोप' पर दूसरी कॉल को हटा देना चाहिए, अन्यथा यह उन लोगों को भ्रमित कर देगा जो टिंकर का उपयोग कैसे करें सीखने की कोशिश कर रहे हैं। –
क्या आप 'close_windows()' को समझा सकते हैं? इसे कब कहा जाना चाहिए? – sbhatla