Я новичок в изучении Kivy, хочу создать приложение на Python и Kivy.
Я слежу за книгой "Создание приложений в Kivy: Mobile с Python". Однако версия Kivy, используемая в этой книге, - 1.8, слишком старая, чтобы правильно выполнить код.
Так что у меня проблемы с заменой ListView на RecycleView!
Это мой main.py
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty
import requests
import json
class WeatherApp(App):
pass
class AddLocationForm(BoxLayout):
search_input_property = ObjectProperty()
def search_location(self):
location_string = self.search_input_property.text
# print(location_string)
API_key =
url = "http://api.openweathermap.org/data/2.5/weather?q={}&APPID={}".format(location_string,API_key)
res=requests.get(url)
# print(response.text)
json_data = json.loads(res.text)
self.retrieve_data(json_data)
def retrieve_data(self,data):
weather_type = str(data['weather'][0]['main'])
weather_description = str(data['weather'][0]['description'])
temperature = str(data['main']['temp']-273.15) + " °C"
pressure = str(data['main']['temp']) + " hpa"
humidity = str(data['main']['humidity']) + " %"
data_list = [weather_type,weather_description,temperature,pressure,humidity]
def find_location(self):
pass
def current_location(self):
pass
if __name__ == "__main__":
application = WeatherApp()
application.run()
Это мой файл kv
AddLocationForm:
<AddLocationForm>:
orientation: 'vertical'
search_input_property:search_input_text
BoxLayout:
orientation: 'horizontal'
height: "50dp"
size_hint_y: None
TextInput:
id: search_input_text
size_hint_x: 50
multiline: False
hint_text:"Please Input a Location"
on_text_validate: root.search_location()
Button:
text: 'Search Location'
size_hint_x: 25
on_press:root.search_location()
Button:
text: 'Current Location'
size_hint_x: 25
Я успешно получил данные о погоде из OpenWeatherMap
и хочу отобразить информацию (weather_type, weather_description, температура, давление, влажность) в виде списка под BoxLayout
(TextInput
, кнопка, кнопка).
Как я могу сделать это в моем файле kv для достижения своей цели?