(Kivy) Не выводит текст

cassti

Новичок
Пользователь
Июл 21, 2021
2
0
1
Приветствую всех, самостоятельно начал изучать python и платформу kivy для создание приложения на Андроид. Пытаюсь сделать небольшую читалку, но после нажатия на кнопку , приложение не выводит текст. Подскажите в чем может быть беда?
Вот код :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.recycleview import RecycleView
from kivy.uix.gridlayout import GridLayout
from kivy.core.window import Window
from kivy.config import ConfigParser
from kivy.uix.label import Label
from kivy.metrics import dp
from kivy.uix.image import Image


class MenuScreen(Screen):
def __init__(self, **kw):
super(MenuScreen, self).__init__(**kw)
box = BoxLayout(orientation='vertical')
box.add_widget(Button(background_normal='1.png',background_down='1',text='Наказ МВС № 691',
on_press=lambda x: set_screen('nakaz')))

self.add_widget(box)




class Nakaz(Screen):
def __init__(self, **kw):
super(Nakaz, self).__init__(**kw)
box = BoxLayout(orientation='vertical')
box.add_widget(Button(text='Розділ І',
on_press=lambda x:set_screen('r1')))

back_button = Button(text='< Назад до головного меню', on_press=lambda x:
set_screen('menu'), size_hint_y=None, height=dp(40))
box.add_widget(back_button)

self.add_widget(box)


class R1(Screen):
def text(Label):
l = Label(text='Hello world') # <======= вот здесь по идее, должно запускать текст , а его на экране нет :/

def __init__(self, **kw):
super(R1, self).__init__(**kw)
box = BoxLayout(orientation='vertical')

back_button = Button(text='< Назад до головного меню', on_press=lambda x:
set_screen('menu'), size_hint_y=None, height=dp(40))
box.add_widget(back_button)
self.add_widget(box)




def set_screen(name_screen):
sm.current = name_screen


sm = ScreenManager()
sm.add_widget(Nakaz(name='nakaz'))
sm.add_widget(R1(name='r1'))


class MoralbookApp(App):
def __init__(self, **kvargs):
super(MoralbookApp, self).__init__(**kvargs)
self.config = ConfigParser()

def build_config(self, config):
config.adddefaultsection('General')
config.setdefault('General', 'user_data', '{}')

def set_value_from_config(self):
self.config.read(os.path.join(self.directory, '%(appname)s.ini'))
self.user_data = ast.literal_eval(self.config.get(
'General', 'user_data'))

def get_application_config(self):
return super(MoralbookApp, self).get_application_config(
'{}/%(appname)s.ini'.format(self.directory))

def build(self):
return sm


if __name__ == '__main__':
MoralbookApp().run()
Просьба сильно надомною не глумиться
wink.gif
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 670
477
83
ваш код не работает... на отступы ругается...
как вставить код можно почитать здесь - как задать вопрос
 
  • Мне нравится
Реакции: cassti

cassti

Новичок
Пользователь
Июл 21, 2021
2
0
1
Вот исправленный код :)

Код:
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.recycleview import RecycleView
from kivy.uix.gridlayout import GridLayout
from kivy.core.window import Window
from kivy.config import ConfigParser
from kivy.uix.label import Label
from kivy.metrics import dp
from kivy.uix.image import Image
 
 
class MenuScreen(Screen):
    def __init__(self, **kw):
        super(MenuScreen, self).__init__(**kw)
        box = BoxLayout(orientation='vertical')
        box.add_widget(Button(background_normal='1.png',background_down='1',text='Наказ МВС № 691',
                              on_press=lambda x: set_screen('nakaz')))
        
        self.add_widget(box)
 
 
 
 
class Nakaz(Screen):
    def __init__(self, **kw):
        super(Nakaz, self).__init__(**kw)
        box = BoxLayout(orientation='vertical')
        box.add_widget(Button(text='Розділ І',
                              on_press=lambda x:set_screen('r1')))
 
        back_button = Button(text='< Назад до головного  меню', on_press=lambda x:
                             set_screen('menu'), size_hint_y=None, height=dp(40))
        box.add_widget(back_button)
      
        self.add_widget(box)
 
 
class R1(Screen):
    def text(Label):
        l = Label(text='Hello world') # <======= вот здесь по идее, должно запускать текст , а его на экране нет :/
 
    def __init__(self, **kw):
        super(R1, self).__init__(**kw)
        box = BoxLayout(orientation='vertical')
    
        back_button = Button(text='< Назад до головного  меню', on_press=lambda x:
                             set_screen('menu'), size_hint_y=None, height=dp(40))
        box.add_widget(back_button)
        self.add_widget(box)
 
    
 
    
def set_screen(name_screen):
    sm.current = name_screen
 
 
sm = ScreenManager()
sm.add_widget(Nakaz(name='nakaz'))
sm.add_widget(R1(name='r1'))
 
 
class MoralbookApp(App):
    def __init__(self, **kvargs):
        super(MoralbookApp, self).__init__(**kvargs)
        self.config = ConfigParser()
 
    def build_config(self, config):
        config.adddefaultsection('General')
        config.setdefault('General', 'user_data', '{}')
 
    def set_value_from_config(self):
        self.config.read(os.path.join(self.directory, '%(appname)s.ini'))
        self.user_data = ast.literal_eval(self.config.get(
            'General', 'user_data'))
 
    def get_application_config(self):
        return super(MoralbookApp, self).get_application_config(
            '{}/%(appname)s.ini'.format(self.directory))
 
    def build(self):
        return sm
 
 
if __name__ == '__main__':
    MoralbookApp().run()
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 670
477
83
можно так
Python:
class R1(Screen):
    def __init__(self, **kw):
        super(R1, self).__init__(**kw)
        box = BoxLayout(orientation='vertical')

        back_button = Button(text='< Назад до головного  меню', on_press=lambda x: set_screen('menu'), size_hint_y=None, height=dp(40))
        box.add_widget(back_button)
        self.add_widget(box)
        self.add_widget(self.text("HELLO WORLD")) # здесь мы вызываем метод text, в аргументах этого метода нужный текст для вывода
                                                  # и добавляем его для вывода в виджете

    def text(self, lbl):
        l = Label(text=lbl)
        return l
 

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