我已经分别编写了GUI和API,我尝试了几种不同的方式来链接这两者。但是想到发布裸骨结构将是最简单的方式,只需要讨论链接这两者的代码。 GUI的代码如下所示
from tkinter import *
def weather_search():
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()
location_label = Label(root,text = "Enter a Location")
location_entry = Entry(root)
location_label.grid(row=1, column = 1)
location_entry.grid(row=1, column = 2)
猜测这是我必须链接到API。但这也是我有限的经验造成问题的地方。
user_location = location_entry.get()
print(user_location)
我尝试使用此功能,但我确信还有更多功能需要完成。
root.mainloop()
weather_search()
#the code for the API is what follows
import requests
city = input("Enter: ")
url = 'http://api.openweathermap.org/data/2.5/weather?q={}&appid=46346a863b94cd3b89bad166fed78b7d&units=metric'.format(city)
res = requests.get(url)
data = res.json()
print(res)
print(data)
我不确定输入位置后是否需要搜索功能。
答案 0 :(得分:0)
根据我的理解,你想从条目中获取位置。
通常的方法是将条目与StringVar
相关联,city
作为条目中值的一种链接。
知道何时读取条目的简单方法是用户点击RETURN键,因此我将其绑定到条目。然后回调函数读取条目并设置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()
变量。
此外,我将焦点设置为输入,因此您无需单击它即可输入位置。
我认为将GUI放在一个函数中的想法似乎有点不寻常,所以我按照我的想法重写了它。
city
现在,当您退出mainloop
时,其余代码可以使用变量library(tidyverse)
df1 <- df %>%
group_by(OrderDate, MajorCategory) %>%
tally() %>%
mutate(MajorCategory = paste("MC", MajorCategory, sep="_")) %>%
spread(MajorCategory, n)
df1
。但是您必须退出mainloop或将其余代码放在GUI代码中。