@IDWLNNN

В чём проблема с ScrollView или почему мой код неправильно работает?

В моём коде BoxLayout добавляет ScrollView на который записан текст спаршенного сайта. Только вот после нажатия на кнопку у меня только чёрный экран) Не могу понять почему ScrollView не отображается на BoxLayout

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from bs4 import BeautifulSoup
from kivy.uix.scrollview import ScrollView
import requests

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

class MyScrollView(ScrollView):
    pass


class Box(BoxLayout):
    color = (.98,.98,.82,1)
    orientation = "vertical"
    padding = [5,5,5,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 = MyScrollView()
        x = 1
        data = ''
        while True:
            if x == 1:
                url = "http://loveread.ec/read_book.php?id=12021&p=1"
            elif x < 4:
                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}',color = (1,1,1,1)))
        self.add_widget(sc)


class MyApp(App):

    def build(self):
        return Box()


if __name__ == "__main__":
    MyApp().run()
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы