Wdrażam graficzny edytor tekstu w Pythonie.
Mam wyświetlany obszar tekstu, ale kiedy próbuję użyć metody asksaveasfile w Tkinter, to pokazuje, że plik został zapisany, ale kiedy próbuję otworzyć ten sam plik w moim edytorze, daje mi pusty plik.Zapisz okno dialogowe pliku w Tkinter
Tylko, plik zostanie utworzony i zapisany. Jego zawartość nie jest.
Chciałbym wiedzieć, dlaczego. czy robię coś źle? Oto mój kod:
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()
Działa. Myślę, że to z powodu nawiasów, że to nie działa. –
Właśnie utworzyłeś edycję, mówiącą, że indeksowanie zaczyna się od 1.0, ale mój tekst jest idealnie zapisany, nawet jeśli wstawię indeks początkowy jako 0.0. –
@RohitShinde, Można podać indeks jako '(0.0, END), aby uzyskać cały tekst, ale' (1.0, END) 'jest poprawny do określenia. Jeśli chcesz drugi wiersz, powinieneś podać '2.x', a nie' 1.x'. – falsetru