2017-03-26 1 views
1

私はチャットGUIを構築しています。エンターキー押下では、テキストフィールドをテキストボックスに表示し、ファイルに保存します。私は別のボタンを使いたくない。テキストボックスに正しく表示されていますが、ファイルに保存されません。どうすればいいのか教えてください。これは初めてのtkinterの使用です。Tkinterを使用してEnterキーを押すとテキストがテキストファイルに保存されない

from Tkinter import * 

root = Tk() 

frame = Frame(root, width=300, height=1000) 
frame.pack(side=BOTTOM) 

#username entry 
L1 = Label(frame, text="User Name") 
L1.pack(side = LEFT) 
input_username = StringVar() 
input_field1 = Entry(frame, text=input_username, width=10) 
input_field1.pack(side=LEFT, fill=X) 

#addresee entry 
L2 = Label(frame, text="@") 
L2.pack(side = LEFT) 
input_addresee = StringVar() 
input_field2 = Entry(frame, text=input_addresee, width=10) 
input_field2.pack(side=LEFT, fill=X) 

#user comment entry 
L3 = Label(frame, text="Comment") 
L3.pack(side = LEFT) 
input_usertext = StringVar() 
input_field3 = Entry(frame, text=input_usertext, width=100) 
input_field3.pack(side=LEFT, fill=X) 

#write to a file 
def save(): 
    text = input_field1.get() + input_field2.get() + input_field3.get() 
    with open("test.txt", "w") as f: 
     f.write(text) 

#chat box 
chats = Text(root) 
chats.pack() 

def Enter_pressed(event): 
    input_get_name = input_field1.get() 
    print(input_get_name) 
    chats.insert(INSERT, '%s : ' % input_get_name) 
    input_username.set('') 

    input_get_add = input_field2.get() 
    print(input_get_add) 
    chats.insert(INSERT, '@%s : ' % input_get_add) 
    input_addresee.set('') 

    input_get_comment = input_field3.get() 
    print(input_get_comment) 
    chats.insert(INSERT, '%s\n' % input_get_comment) 
    input_usertext.set('') 
    save() 

frame2 = Frame(root) 
L2_1 = Label(frame2, text="All chats") 
L2_1.pack(side = TOP) 
input_field1.bind(Enter_pressed) 
input_field2.bind(Enter_pressed) 
input_field3.bind("<Return>", Enter_pressed) 
frame2.pack() 

root.mainloop() 

答えて

1

あなたはここソリューションですあなたは空白の

に入力フィールドを設定している言ったように:

def save(text): 
    with open("test.txt", "w") as f: 
     f.write(text) 

とセーブ呼び出す:

save(input_get_name+": "+input_get_add+": "+input_get_comment) 
関連する問題