我有一个tkinter代码设置,它将为用户提供七个输入提示和一个“提交”按钮。我希望能够将输入框中的任何用户类型导出到.csv文件。我使用过Python tkinter文档和许多其他资源,包括这个网站,但找不到答案。这是我到目前为止的代码:
import Tkinter
from Tkinter import *
from ttk import *
import csv
class App(Frame):
def tile():
Label(text='Enter Information Below').pack(side=TOP,padx=15,pady=15)
def output(self):
with open('WorkOrderLog.csv', 'a') as f:
w=csv.writer(f, quoting=csv.QUOTE_ALL)
Label(text='Name:').pack(side=LEFT,padx=5,pady=5)
Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)
Label(text='1:').pack(side=LEFT,padx=5,pady=5)
Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)
Label(text='2:').pack(side=LEFT,padx=5,pady=5)
Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)
Label(text='3:').pack(side=LEFT,padx=5,pady=5)
Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)
Label(text='4:').pack(side=LEFT,padx=5,pady=5)
Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)
Label(text='5:').pack(side=LEFT,padx=5,pady=5)
Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)
Label(text='6:').pack(side=LEFT,padx=5,pady=5)
Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)
Button(root, text='Submit', command=w.writerow([Entry,Entry,Entry,Entry,Entry,Entry,Entry])).pack(side=RIGHT,padx=5,pady=5)
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.output()
root=Tk()
root.title('Auto Logger')
root.geometry('1000x100')
app=App(master=root)
app.mainloop()
root.mainloop()
我失去了,因为从这里去的地方。我已经研究过如何使用“get()”函数,因为这似乎是一个常见的答案,但我对tkinter的了解有限。非常感谢任何和所有帮助。
答案 0 :(得分:3)
使用get()进入正确的轨道,它将返回tkinter Entry小部件的内容。
我使用了一个条目来说明如何从Entry小部件完成retreiving文本并将内容写入.csv文件。
from tkinter import *
import csv
class App(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.output()
def output(self):
Label(text='Name:').pack(side=LEFT,padx=5,pady=5)
self.e = Entry(root, width=10)
self.e.pack(side=LEFT,padx=5,pady=5)
self.b = Button(root, text='Submit', command=self.writeToFile)
self.b.pack(side=RIGHT,padx=5,pady=5)
def writeToFile(self):
with open('WorkOrderLog.csv', 'a') as f:
w=csv.writer(f, quoting=csv.QUOTE_ALL)
w.writerow([self.e.get()])
if __name__ == "__main__":
root=Tk()
root.title('Auto Logger')
root.geometry('1000x100')
app=App(master=root)
app.mainloop()
root.mainloop()
通过创建Entry并将其分配给self.e,您可以通过在App类的writeToFile函数中调用self.e.get()来访问文本值。