2017-02-14 14 views
0

Допустим, у меня есть этот кодСохранение ввода запись из GUI

import math 
from tkinter import * 


def close_window(): 
    root.destroy() 

def fileName(): 
    filename = content.get() 
    return filename; 



root = Tk() 
content = StringVar() 

L2 = Label(root, text = "The Program").grid(row = 0, sticky = E) 


L1 = Label(root, text = "Enter filename").grid(row = 1, column = 0, sticky = E) 
E1 = Entry(root, bd = 5, textvariable = content).grid(row = 1, column = 1) 


B1 = Button(root, text = "Ok", command = fileName).grid(row = 2, column = 0) 
B2 = Button(root, text = "Quit", command = close_window).grid(row = 2, column = 1) 


root.mainloop() 

print(fileName()) 

Теперь проблема я хочу сохранить содержание я вхожу в E1 (так позже я могу сделать что-то в нем), но как я могу получить доступ к это «вне» GUI?

Программа, которую я хочу сделать, заключается в том, что пользователь вводит имя файла, затем он запускает кучу функций на входе, а затем создает текстовое сообщение на основе данных, но я не могу получить доступ к вводу с fileName() ничего не возвращает.

+0

Вы не должны иметь в виду 'Content' в вашем 'имя_файла'. Попробуйте передать содержимое в качестве параметра функции, а затем обратиться к нему. – wpercy

ответ

0

Не уверен, если это делает то, что вы хотели, но теперь он печатает на кнопку мыши и вы имеете вы имя_файла набор переменных для content.get()

import math 
from tkinter import * 


def close_window(): 
    root.destroy() 

def fileName(): 
    filename = content.get() 
    return filename; 

def combine_funcs(*funcs): 
    def combined_func(*args, **kwargs): 
     for f in funcs: 
      f(*args, **kwargs) 
    return combined_func 

def prnt(): 
    print(content.get()) 

root = Tk() 
content = StringVar() 

L2 = Label(root, text = "The Program").grid(row = 0, sticky = E) 


L1 = Label(root, text = "Enter filename").grid(row = 1, column = 0, sticky = E) 
E1 = Entry(root, bd = 5, textvariable = content).grid(row = 1, column = 1) 


B1 = Button(root, text = "Ok", command = combine_funcs(fileName,prnt)).grid(row = 2, column = 0) 
B2 = Button(root, text = "Quit", command = close_window).grid(row = 2, column = 1) 


root.mainloop() 


print(fileName()) 
+0

Может быть, идея сохранить его как StringVar, хотя –