@IDWLNNN

Почему код неправильно работает?

Мой код:
class MyBoxLayout(BoxLayout):
    pass
class MyScrollView(ScrollView):
    pass


class MyButton(Button):
    color=(0, 0, 0, 1)
    valign='bottom'
    padding_y=10
    background_color=(.93, .91, .67, 1)
    background_normal=''
 
class MyApp(App):
    bl = MyBoxLayout(orientation='vertical', padding=[5], spacing=10)
    def build(self):

        self.bl.add_widget(MyButton(text='И. С. Тургенев. «Отцы и дети»', on_press = self.btn_press))


    def btn_press(self,instance):
        self.bl.clear_widgets()
        sc = ScrollView(size_hint=(1, None))
        x = 1
        data = ''
        while True:
            if x == 1:
                url = "http://loveread.ec/read_book.php?id=12021&p=1"
            elif x < 57:
                url = "http://loveread.ec/read_book.php?id=12021&p=" + f'{x}'
            else:
                break
            request = requests.get(url)
            soup = BeautifulSoup(request.text, "html.parser")
            teme = soup.find_all("p", class_="MsoNormal")
            for temes in teme:
                data += temes.text
            x = x + 1
        sc.add_widget(Label(text=f'{data}'))
        return sc


Код на Kivy
<BoxLayout>:
    canvas:
        Color:
            rgba: (.98,.98,.82,1)
        Rectangle:
            pos: self.pos
            size: self.size
<ScrollView>:
    canvas:
        Color:
            rgba: (.98,.98,.82,1)
        Rectangle:
            pos: self.pos
            size: self.size

Вроде код должен отображать содержимое спаршенной страницы, но так не происходит. Не могу понять почему) Может аргументы в функцию неправильно передаю) Точнее если передаю, то просто белый экран и PyCharm думает...
Помогите новичку пожалуйста <3
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
Lord_of_Rings
@Lord_of_Rings
Python developer
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.scrollview import ScrollView
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout

class MyButton(Button):
    color=(0, 0, 0, 1)
    valign='bottom'
    padding_y=10
    background_color=(.93, .91, .67, 1)
    background_normal=''

class Box(BoxLayout):

    orientation = "vertical"
    padding = [5] 
    spacing = 10

    def on_kv_post(self, widget):

          self.add_widget(MyButton(text='И. С. Тургенев. «Отцы и дети»', on_press=self.btn_press))

    def btn_press(self,instance):
        self.clear_widgets()
        sc = ScrollView(size_hint=(1, None))
        x = 1
        data = ''
        while True:
            if x == 1:
                url = "http://loveread.ec/read_book.php?id=12021&p=1"
            elif x < 57:
                url = "http://loveread.ec/read_book.php?id=12021&p=" + f'{x}'
            else:
                break
            request = requests.get(url)
            soup = BeautifulSoup(request.text, "html.parser")
            teme = soup.find_all("p", class_="MsoNormal")
            for temes in teme:
                data += temes.text
            x = x + 1
        sc.add_widget(Label(text=f'{data}'))
        self.add_widget(sc)

class MyApp(App):
  
    def build(self):

        return Box()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы