2015-05-06 3 views
0

Это должно быть легко, но я страдаю усталостью поиска для ответа, который мне нужен. В приведенном ниже коде появится окно ввода. Я ввожу записи в поля ввода, и функция show_entry_fields() получает вход и окно закрывается. Затем я хочу использовать новые переменные ввода в следующем коде, но они возвращаются к их первоначальным глобальным значениям. Я определяю их как глобальные, поэтому я могу использовать их во всем скрипте, но функция входа не может их изменить. Как я могу получить информацию от пользователей, которые затем доступны для остальной части программы?переменная ввода tkinter от функции

import tkinter as tk 

site = 'cats' 
score = 100 

def show_entry_fields(): 
    site = e1.get() 
    score = e2.get() 
    master.destroy() 
    #print(site,score) 


master = tk.Tk() 
master.columnconfigure(1, weight=1) 
tk.Label(master, text="website").grid(row=0) 
tk.Label(master, text="Image Ranking").grid(row=1) 

e1 = tk.Entry(master) 
e2 = tk.Entry(master) 

e1.insert(0,site) 

e1.grid(row=0, column=1, sticky='EW') 
e2.grid(row=1, column=1, sticky='EW') 

tk.Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky='W', pady=4) 
tk.Button(master, text='Go!', command=show_entry_fields).grid(row=3, column=1, sticky='W', pady=4) 
master.mainloop() 

print(site, score) 

ответ

0

Решает проблему?

def show_entry_fields(): 
    global site, score, master 
    site = e1.get() 
    score = e2.get() 
    master.destroy() 

По крайней мере, печать в конце программы печатает правильный ответ.

+0

Да, это так. Но я понял, что объявление переменных в начале сделало их глобальными. Я вернулся и прямо сделал это в начале, и он также работает. Спасибо за вашу помощь. – d8sconz

+0

Добро пожаловать! Просто небольшой совет: старайтесь избегать глобальных переменных или, по крайней мере, используйте только «глобальный», где он вам нужен. Это позволит избежать конфликтов в будущем! Кстати: если ответ был полезен, отметьте его как принятый (нажмите «V» слева от ответа) и/или увеличьте его (со стрелкой вверх). Таким образом, другие будут знать, что есть правильный ответ на вашу проблему! – jcoppens