“类型错误:无法腌制'_tkinter.tkapp'对象”

问题描述 投票:0回答:1

我正在用 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文件,出现错误

python tkinter pickle
1个回答
0
投票

text
是一个小部件,而不是小部件中的文本。你不能 pickle tkinter 对象。

© www.soinside.com 2019 - 2024. All rights reserved.