如何在Tkinter中将输入字段值保存到磁盘?

时间:2015-10-12 01:15:41

标签: python tkinter

我有一个勇敢的年轻朋友,他让我写一个脚本,可以为他需要的科学程序创建配置(文本)文件,并询问我是否可以将Python中的GUI组合在一起,以简化流程。我已经能够拼凑出一些可以为他提供GUI以输入他需要的一些值的GUI,但我不太确定如何通过Tkinter保存这些值。你们中的任何人都可以就可能的解决方案提出任何建议吗?

这是我到目前为止的代码:

import Tkinter
from tkFileDialog import *

window = Tkinter.Tk()
window.title('File Generator for Adam!')

# create file menu


# create a label widget called lbl
lbl = Tkinter.Label(window, text="Enter the imin value for Min")
# create matching text entry widget called ent
ent = Tkinter.Entry(window)

lbl2 = Tkinter.Label(window, text="Enter the ntx value for Min")
ent2 = Tkinter.Entry(window)

# pack (add) widgets to window
lbl.pack()
ent.pack()
lbl2.pack()
ent2.pack()
window.mainloop()

2 个答案:

答案 0 :(得分:2)

条目小部件有一个get方法,有详细记录。

ent1 = Tkinter.Entry(window)
...
print "the data is " + ent1.get() 

通常,您会编写一个在条目小部件上调用get方法的函数,然后从按钮调用该函数。获得数据后,将其保存到文件中,就像保存任何其他数据一样。

def save_data():
    with open("output.txt", "w") as f:
        f.write(ent1.get() + "\n")
        f.write(ent2.get() + "\n")
...
button = Tkinter.Button(window, text="Save", command=save_data)

答案 1 :(得分:1)

一种方法是使用tkinter(Tkinter.StringVar())设置字符串变量对象,然后将条目的属性设置为相应的变量。像这样:

window = Tkinter.Tk()
ent1var = Tkinter.StringVar()
ent1 = Tkinter.Entry(window, textvarible=ent1var)
ent1.pack()

要检索ent1中的内容,您需要在get()上运行ent1var方法。

def getent1():
    return ent1var.get()

您可以在如下按钮中使用上述定义:

ent1but = Tkinter.Button(window, text="Show ent1", command=getent1)
ent1but.pack()