2015-10-12 59 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)