我正在用 tkinter 制作一个文本编辑程序。我创建了一个保存按钮,使用 pickle 将文本转储到 .dat 文件中,但是当我单击所述保存按钮时,我收到标题中的错误。
当我之前查看这个问题时,人们说他们正在使用某种多重处理,但我没有。我该如何解决?我应该使用 pickle 以外的其他模块吗? (如果是的话请告诉我该用什么)
(第一次使用这个网站,如果我做错了,很抱歉) 程序代码:
import tkinter as tk
from tkinter import ttk
from tkinter import messagebox
import pickle
window = tk.Tk()
window.geometry('800x500')
window.resizable(True,True)
window.title('Text Editor')
#**save problem**
def save():
pickle.dump(text, open('textsave.dat', 'wb'))
messagebox.INFO(title='TextEditor',text='Saved Successfully')
def fontsize():
text.config(font=fontsize_entry.get())
def textcolor():
text.config(fg=color_entry.get())
#pickle.load(open('textsave.dat', 'rb'))
frame1 = ttk.Frame(master=window)
frame1.pack()
frame_label = ttk.Frame(master=frame1)
frame_label.pack()
frame_save = ttk.Frame(master=window)
frame_save.pack(pady=5)
frame2 = ttk.Frame(master=window)
frame2.pack(pady=15)
#the text box
text = tk.Text(window, font='"Annie Use Your Telescope" 20', fg='black')
text.pack()
#font related things
fontsize_entry = ttk.Entry(master=frame1,text='Font')
fontsize_entry.pack(side='left')
fontsize_label = ttk.Label(master=frame_label,text='"font" fontsize bold/italic',font='Arial 12')
fontsize_label.pack(side='left', padx=30)
fontsize_button = ttk.Button(master=frame1,text='Enter', command=fontsize)
fontsize_button.pack(side='left')
#color related things
color_entry = ttk.Entry(master=frame1,text='Color')
color_entry.pack(side='right')
color_label = ttk.Label(master=frame_label,text='Text Color',font='Arial 12')
color_label.pack(side='right', padx=30)
color_button = ttk.Button(master=frame1,text='Enter', command=textcolor)
color_button.pack(side='right')
#save related things
save_button = ttk.Button(master=frame_save, text='Save', command=save)
save_button.pack(side='right',padx=50)
window.mainloop()
尝试使用pickle将文本保存到.dat文件,出现错误
text
是一个小部件,而不是小部件中的文本。你不能 pickle tkinter 对象。