में फ़ाइल संवाद सहेजें मैं पाइथन में एक जीयूआई आधारित टेक्स्ट एडिटर लागू कर रहा हूं।
मैंने टेक्स्ट क्षेत्र प्रदर्शित किया है, लेकिन जब मैं टिंकर में askaveasfile विधि का उपयोग करने का प्रयास करता हूं, तो यह दिखाता है कि फ़ाइल सहेजी गई है, लेकिन जब मैं अपने डेस्कटॉप संपादक में एक ही फ़ाइल को खोलने और खोलने के लिए, तो यह मुझे एक खाली फ़ाइल देता है।टिंकर
केवल, फ़ाइल बनाई और सहेजी गई है। इसकी सामग्री नहीं है।
मैं जानना चाहता हूं क्यों। क्या मुझसे कुछ गलत हो रही है? यहां मेरा कोड है:
from Tkinter import *
import tkMessageBox
import Tkinter
import tkFileDialog
def donothing():
print "a"
def file_save():
name=asksaveasfile(mode='w',defaultextension=".txt")
text2save=str(text.get(0.0,END))
name.write(text2save)
name.close
root = Tk()
root.geometry("500x500")
menubar=Menu(root)
text=Text(root)
text.pack()
filemenu=Menu(menubar,tearoff=0)
filemenu.add_command(label="New", command=donothing)
filemenu.add_command(label="Open", command=donothing)
filemenu.add_command(label="Save", command=file_save)
filemenu.add_command(label="Save as...", command=donothing)
filemenu.add_command(label="Close", command=donothing)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)
editmenu=Menu(menubar,tearoff=0)
editmenu.add_command(label="Undo", command=donothing)
editmenu.add_command(label="Copy", command=donothing)
editmenu.add_command(label="Paste", command=donothing)
menubar.add_cascade(label="Edit", menu=editmenu)
helpmenu=Menu(menubar,tearoff=0)
helpmenu.add_command(label="Help",command=donothing)
menubar.add_cascade(label="Help",menu=helpmenu)
root.config(menu=menubar)
root.mainloop()
यह काम करता है। मुझे लगता है कि यह ब्रांड्स के कारण था कि यह काम नहीं कर रहा था। –
आपने अभी एक संपादन बनाया है जो इंडेक्सिंग 1.0 से शुरू होता है लेकिन मेरा टेक्स्ट पूरी तरह से सहेजा गया है भले ही मैं स्टार्ट इंडेक्स को 0.0 के रूप में रखूं। –
@RohitShinde, संपूर्ण पाठ प्राप्त करने के लिए सूचकांक को निर्दिष्ट करने के लिए '(0.0, END) के रूप में निर्दिष्ट करना ठीक है, लेकिन '(1.0, END)' निर्दिष्ट करने के तरीके के लिए सही है। यदि आप दूसरी पंक्ति चाहते हैं, तो आपको '2.x' निर्दिष्ट करना चाहिए, न कि' 1.x'। – falsetru