2015-10-12 61 views
0

我有一个勇敢的年轻朋友,他问我写一个脚本可以为他需要的科学程序创建配置(文本)文件,并询问我是否可以将Python中的图形用户界面集成在一起,以简化流程。我已经能够拼凑出一些能为他提供一些GUI所需的GUI的工具,但我不太清楚如何通过Tkinter保存这些值。你们中的任何一个可以给我任何可能的解决方案的建议?如何将输入字段值保存到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() 

回答

1

一种方法是设置使用Tkinter的(Tkinter.StringVar())的字符串变量对象,然后设置你的条目到corresponging变量属性。事情是这样的:

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

若要检索您需要在ent1var运行get()方法是什么ent1

def getent1(): 
    return ent1var.get() 

你可以使用一个按钮,这上面的定义,像这样:

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

嗯,我应该考虑切换到wxPython吗?似乎它会成为实现这一目标的更多Pythonic方式。 – n1c9

+0

Tkinter非常适合死简单的用户界面。我发现wxPython的功能要强大得多,但要让所有的东西都摆平,它的难度要高出10倍。这真的归结为这项工作的正确工具。如果只是一些界面项目,我会在心跳中与Tkinter一起去。如果它需要更强大/看起来很小,wxPython就是我所倾向的。 – Kyrubas

+0

安静的我经常会用Tkinter(和py2exe)代替给同事一个命令行操作文件,以便他们可以在他们熟悉的用户界面中使用文件选择器。 – Kyrubas

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)