sau*_*exx 3 python csv tkinter python-2.7
我有一个 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()
Run Code Online (Sandbox Code Playgroud)
我迷失了从这里该去哪里。我研究了如何使用“get()”函数,因为这似乎是一个常见的答案,但我对 tkinter 的了解有限。非常感谢任何和所有的帮助。
小智 6
使用 get() 的方法是正确的,它将返回 tkinter Entry 小部件的内容。
我使用单个条目来说明如何完成从条目小部件检索文本并将内容写入 .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()
Run Code Online (Sandbox Code Playgroud)
通过创建 Entry 并将其分配给 self.e,您可以通过调用 App 类的 writeToFile 函数中的 self.e.get() 来访问文本值。