Это должно быть легко, но я страдаю усталостью поиска для ответа, который мне нужен. В приведенном ниже коде появится окно ввода. Я ввожу записи в поля ввода, и функция 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)
Да, это так. Но я понял, что объявление переменных в начале сделало их глобальными. Я вернулся и прямо сделал это в начале, и он также работает. Спасибо за вашу помощь. – d8sconz
Добро пожаловать! Просто небольшой совет: старайтесь избегать глобальных переменных или, по крайней мере, используйте только «глобальный», где он вам нужен. Это позволит избежать конфликтов в будущем! Кстати: если ответ был полезен, отметьте его как принятый (нажмите «V» слева от ответа) и/или увеличьте его (со стрелкой вверх). Таким образом, другие будут знать, что есть правильный ответ на вашу проблему! – jcoppens