Форум сайта python.su
Здравствуйте. Написал код, для отслеживания погоды:
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')
wind = w.get_wind()
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
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')
wind = w.get_wind()
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}%')
Буду благодарен за любую помощь.
Офлайн
у вас не kivy а qt
упс невнимательность … вы переписываете qt на kivy
на сколько понимаю вам нужносвязать событие на кнопке с функцией. так?
эт делается как то так https://kivy.org/doc/stable/search.html?check_keywords=yes&area=default&q=utton
from kivy.app import App from kivy.lang import Builder from kivy.uix.screenmanager import Screen Builder.load_string( ''' <Test> BoxLayout: Button: text: "press" on_press: root.func1(root.var1) ''') class Test(Screen): def __init__(self, **kw): super().__init__(**kw) self.var1 = 'print print print' def func1(self, xz): print(xz) xxx = Test if __name__ == '__main__': class TestApp(App): def build(self): return xxx() TestApp().run()
Отредактировано AD0DE412 (Авг. 18, 2020 19:10:29)
Офлайн