2012-02-13 4 views
0

Мне нужно создать приложение GUI с Tkinter, для которого требуется много записей в текстовом поле. Пользователь должен ввести все записи, а затем использовать кнопку «Выполнить» для выполнения определенной функции. Я хочу сделать следующее: включить функциональность, которая восстанавливает ВСЕ текстовые данные, введенные пользователем из предыдущего сеанса, так что пользователю не нужно каждый раз вводить все данные снова и снова. Я мог бы использовать параметр 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() 

я запускаю этот графический интерфейс и введите «Value1» в поле ввода. Затем я хочу закрыть окно, заново запустить его, а запись «Value1» появится по умолчанию. Каждый сеанс должен отображать значение из предыдущего сеанса (значение вводится вручную только в первый раз). Есть какой-либо способ сделать это?

Это было бы очень полезно, потому что в моем случае пользователь должен изменить только одно или два поля из 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