2012-02-13 1 views
0

多くのテキストフィールドエントリを必要とするGUIアプリケーションを作成する必要があります。ユーザーはすべての項目を入力し、特定の機能を実行するために「実行」ボタンを使用する必要があります。私がしたいのは、以前のセッションからユーザーが入力したすべてのテキストデータを復元する機能を含むことで、ユーザーは毎回すべてのデータを何度も入力する必要がなくなります。私はentry_box.set( '望ましい文字列')オプションを使うことができましたが、これは静的であり、以前のGUIセッションを考慮していません。例えば前のセッションのエントリボックスデータを使用するTkinter

、次のスクリプトで:

#!usr/bin/env python 
from Tkinter import * 

# Define input retrieve function for application input 
def retrieve_text(): 
    print(app_entry.get()) 

if __name__ == "__main__": 

    # Create window (or form) 
    app_win = Tk() 

    # Create label 
    app_label = Label(app_win, text="Enter value") 
    app_label.pack() 

    # Create entry box 
    app_entry = Entry(app_win) 
    app_entry.pack() 

    # Create button 
    app_button = Button(app_win, text="Print Value", command=retrieve_text) 
    app_button.pack() 

    # Initialize GUI loop 
    app_win.mainloop() 

私は、このGUIを実行し、入力ボックスに 'VALUE1' を入力します。次に、ウィンドウを閉じて再実行し、デフォルトで表示される「Value1」というエントリを作成します。各セッションは前のセッションの値を表示する必要があります(この値は初めて手動で入力したものです)。これを行う方法はありますか?

これは私の場合、GUIが再実行されるたびに1つまたは2つのフィールドを10前後に変更する必要があるため、非常に便利です。

答えて

2

mainには、これを使用してイベントを閉じるハンドラを追加します。今

app_win.protocol("WM_DELETE_WINDOW", handler) 

閉じるボタンが押されるたび、機能handlerが呼び出されます。今

def handler(): 
    f = open("backup", "w") 
    f.write(app_entry.get()) 
    f.close() 
    app_win.quit() 

は、スクリプトを再起動したときに、ファイル&を読むためにあなたのプログラムがテキストを設定変更することができます。

+0

ありがとうございます!このメソッドは正常に動作するはずです – prrao

関連する問題