Насколько я понимаю, вы хотите получить местоположение из записи.
Обычный способ - связать запись с StringVar
, который служит своего рода ссылкой на значение в записи.
Простой способ узнать, когда читать запись, - это когда пользователь нажимает клавишу RETURN, поэтому я привяжу ее к записи. Затем функция обратного вызова читает запись и устанавливает переменную city
.
Также я настраиваю фокус на вход, чтобы вам не пришлось нажимать на него, чтобы ввести местоположение.
Я думал, что идея поместить графический интерфейс в функцию кажется немного необычной, поэтому я переписал ее, как и раньше.
from tkinter import *
root = Tk()
root.title("Weather")
root.geometry("800x600")
app = Frame(root)
app.grid() #This puts the frame into the grid
label = Label(app, text = "Weather")
label.grid()
def read_entry(event): # Entry ENTER key callback function
global city
city = location.get()
print(city)
location_label = Label(root,text = "Enter a Location")
location_label.grid(row=1, column = 1)
location = StringVar() # Create a StringVar
location_entry = Entry(root, textvariable=location) # Assign textvariable
location_entry.grid(row=1, column = 2)
location_entry.bind('<Return>', read_entry) # Bind ENTER key to function
# that reads entry
location_entry.focus_set() # Sets keyboard focus to entry
root.mainloop()
Теперь остальная часть вашего кода может использовать переменную city
при выходе из mainloop
. Но вам придется либо выйти из mainloop, либо поместить оставшуюся часть кода в код GUI.