Нужна помощь с написанием кода в Python Kivy

jzIlyaB

Новичок
Пользователь
Июл 28, 2020
3
0
1
Здравствуйте. Написал код, для отслеживания погоды:

import sys, pyowm
from PySide2 import QtCore, QtGui,QtWidgets
from weather import Ui_Dialog

app = QtWidgets.QApplication(sys.argv)

Dialog = QtWidgets.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()

def get_weather_city():
owm = pyowm.OWM('8e5e292b670523427419a0ebac733e46', language = "ru")
city = ui.lineEdit.text()
observation = owm.weather_at_place(city)
w = observation.get_weather()

detail = w.get_detailed_status()
temp = w.get_temperature('celsius')["temp"]
wind = w.get_wind()["speed"]
humidity = w.get_humidity()

ui.label_2.setText(f'Состояние погоды: {detail}')
ui.label_3.setText(f'Температура: {temp}')
ui.label_4.setText(f'Скорость ветра: {wind}м/с')
ui.label_5.setText(f'Влажность воздуха: {humidity}%')

ui.pushButton.clicked.connect(get_weather_city)

sys.exit(app.exec_())

Хочу сделать это приложение для телефонов. Насколько я понимаю, это можно сделать только с помощью Kivy.
Написал вот это:

from kivy.app import App

from kivy.uix.button import Button
from kivy.uix.textinput import TextInput

from kivy.uix.boxlayout import BoxLayout
from kivy.uix.anchorlayout import AnchorLayout

class WeatherApp(App):
def build(self):
al = AnchorLayout()
bl = BoxLayout(orientation = 'vertical', size_hint =[.5, .5])

bl.add_widget(TextInput())
bl.add_widget(Button(text = 'ПОЛУЧИТЬ ДАННЫЕ'))
al.add_widget(bl)

return al

if __name__ == "__main__":
WeatherApp().run()

Но я не понимаю как при нажатии на кнопку вывести вот эту часть:

owm = pyowm.OWM('8e5e292b670523427419a0ebac733e46', language = "ru")
city = ui.lineEdit.text()
observation = owm.weather_at_place(city)
w = observation.get_weather()

detail = w.get_detailed_status()
temp = w.get_temperature('celsius')["temp"]
wind = w.get_wind()["speed"]
humidity = w.get_humidity()

ui.label_2.setText(f'Состояние погоды: {detail}')
ui.label_3.setText(f'Температура: {temp}')
ui.label_4.setText(f'Скорость ветра: {wind}м/с')
ui.label_5.setText(f'Влажность воздуха: {humidity}%')

Буду благодарен за любую помощь.
 

Форум IT Специалистов