Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 18, 2020 08:21:13

jzilb8
Зарегистрирован: 2020-08-18
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Здравствуйте. Написал код, для отслеживания погоды:

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}%')

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

Офлайн

#2 Авг. 18, 2020 18:05:34

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

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

у вас не 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()
зы ну там еще есть куча вариантов
ззы приведите свой код в порядок см. ниже



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Авг. 18, 2020 19:10:29)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version