使用Tkinter保存输入

时间:2016-02-19 23:25:51

标签: python tkinter

我写了这段代码,以便将我在输入框中输入的内容保存到可以查看的文件中...

from tkinter import *
root = Tk()
def save(event):
   file = open('HW.txt','w')
   file.write('English:',e+'\n'+'Math:',m+'\n'+'Science:',sci+'\n'+'Spanish:',sp+'\n'+'SS:',ss+'\n'+'WebDev',cp+'\n'+other)
   file.close()
e = Label(root, text="English")
m = Label(root, text="Math")
sci = Label(root, text="Science")
sp = Label(root, text="Spanish")
ss = Label(root, text="Social Studies")
cp = Label(root, text="Computer")
other = Label(root, text="Other")
entry1 = Entry(root)
entry2 = Entry(root)
entry3 = Entry(root)
entry4= Entry(root)
entry5 = Entry(root)
entry6 = Entry(root)
entry7= Entry(root)
e.grid(row=0, sticky=E)
m.grid(row=1, sticky=E)
sci.grid(row=2, sticky=E)
sp.grid(row=3, sticky=E)
ss.grid(row=4, sticky=E)
cp.grid(row=5, sticky=E)
other.grid(row=6, sticky=E)
entry1.grid(row=0,column=1)
entry2.grid(row=1,column=1)
entry3.grid(row=2,column=1)
entry4.grid(row=3,column=1)
entry5.grid(row=4,column=1)
entry6.grid(row=5,column=1)
entry7.grid(row=6,column=1)
s = Button(root, text = "Save")
s.bind("<Button-1>",save)
s.grid(row=7,column=1)
root.mainloop()

但是,当点击保存按钮说...

时,我在第5行收到错误
line 5, in save
 file.write('English:',e+'\n'+'Math:',m+'\n'+'Science:',sci+'\n'+'Spanish:',sp+'\n'+'SS:',ss+'\n'+'WebDev',cp+'\n'+other)
TypeError: unsupported operand type(s) for +: 'Label' and 'str'

1 个答案:

答案 0 :(得分:1)

问题在于你的功能。您正在尝试调用文本的标签而不是框的值。这应该更好:

def save(event):
   file = open('HW.txt','w')
   file.write('English:' + entry1.get() +'\n'+'Math:' + entry2.get() + '\n'+'Science:' + entry3.get() +
              '\n'+'Spanish:' + entry4.get()+'\n'+'SS:' + entry5.get()+'\n'+'WebDev' + entry6.get()+
              '\n'+entry7.get())

这会将框的值(内部的任何内容)作为字符串返回并将其写入文件。另外,你有一些逗号而不是+。每次向写入添加内容时都需要使用加号。