Tôi đang triển khai trình soạn thảo văn bản dựa trên GUI trong python.
Tôi đã hiển thị vùng văn bản nhưng khi tôi cố gắng sử dụng phương thức askaveasfile trong Tkinter, nó cho thấy tệp đã được lưu nhưng khi tôi thử và mở cùng một tệp trong trình soạn thảo trên màn hình, nó cung cấp cho tôi tệp trống.Lưu Hộp thoại Tệp trong Tkinter
Chỉ, tệp được tạo và lưu. Nội dung của nó thì không.
Tôi muốn biết lý do. Tôi có làm điều gì sai? Đây là mã của tôi:
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()
Nó hoạt động. Tôi nghĩ đó là vì dấu ngoặc đơn không hoạt động. –
Bạn vừa tạo bản chỉnh sửa cho biết việc lập chỉ mục bắt đầu từ 1.0 nhưng văn bản của tôi được lưu hoàn toàn ngay cả khi tôi đặt chỉ mục bắt đầu là 0.0. –
@RohitShinde, Bạn có thể chỉ định chỉ mục là '(0.0, END) để lấy toàn bộ văn bản, nhưng' (1.0, END) 'là đúng để chỉ định. Nếu bạn muốn dòng thứ hai, bạn nên xác định '2.x', không phải' 1.x'. – falsetru