Мне нужно добавить заголовок на первый экран.
Вот код, там в классе MainApp создал дополнительную функцию, у меня это один раз сработало, но я, видимо, делал что-то еще, при том остальные кнопки не отображались. В инете инфы вообзе не нашел, помогите разобраться, желательно с объянением)) Спасибо))
from kivy.app import App
from kivy.core.window import Window
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
Window.clearcolor = '#121212'
class MainApp(App):
def text(self):
title = Label(text='ABOBA',
bold=True,
pos_hint={'center_x': .5, 'center_y': .9},
background_color='#555555')
return title
def build(self):
# Add the main and second screens to the manager, this class does nothing else
sm.add_widget(MainScreen())
sm.add_widget(SecondScreen())
sm.add_widget(ThirdScreen())
return sm # Return the manager to work with him later
class MainScreen(Screen):
def __init__(self):
super().__init__()
self.name = 'Main' # setting the screen name value for the screen manager
# (it's more convenient to call by name rather than by class)
main_layout = FloatLayout() # creating an empty layout that's not bound to the screen
self.add_widget(main_layout) # adding main_layout on screen
# Button to get to the 2nd screen
three_players = Button(text='3 игрока',
bold=True,
background_normal='',
background_color='#565656',
pos_hint={'center_x': .5, 'center_y': .35},
size_hint=(.7, .12),
color='#000000')
three_players.bind(on_press=self.to_second_scrn)
# Button to get to the 3rd screen
four_players = Button(text='4 игрока',
bold=True,
background_normal='',
background_color='#565656',
pos_hint={'center_x': .5, 'center_y': .2},
size_hint=(.7, .12),
color='#000000')
four_players.bind(on_press=self.to_third_scrn)
main_layout.add_widget(three_players)
main_layout.add_widget(four_players) # adding button on layout
def to_second_scrn(self, *args):
self.manager.current = 'Second' # selecting the screen by name (in this case by name "Second")
def to_third_scrn(self, *args):
self.manager.current = 'Third' # selecting the screen by name (in this case by name "Thrid")
def build(self):
title = Label(text="ABOBA",
pos_hint={'center_x': 1, 'center_y': .9},
)
return title
class SecondScreen(Screen):
def __init__(self):
super().__init__()
# on this screen, I do everything the same as on the main screen to be able to switch back and forth
self.name = 'Second'
second_layout = FloatLayout()
self.add_widget(second_layout)
Button
Go_Back = Button(text='Go to Main screen',
size_hint=(.5, .5),
pos_hint={'center_x': .5, 'center_y': .5},
color='#ffff00')
Go_Back.bind(on_press=self.to_main_scrn)
second_layout.add_widget(Go_Back)
def to_main_scrn(self, *args): # together with the click of the button, it transmits info about itself.
# In order not to pop up an error, add *args to the function
self.manager.current = 'Main'
return 0
class ThirdScreen(Screen):
def __init__(self):
super().__init__()
# on this screen, do everything the same as on the main screen to be able to switch back and forth
self.name = 'Third'
third_layout = FloatLayout()
self.add_widget(third_layout)
# Button
Go_Back = Button(text='Go to Main screen',
size_hint=(.5, .5),
pos_hint={'center_x': .5, 'center_y': .5},
color='#ffff00')
Go_Back.bind(on_press=self.to_main_scrn)
third_layout.add_widget(Go_Back)
def to_main_scrn(self, *args): # together with the click of the button, it transmits info about itself.
# In order not to pop up an error, add *args to the function
self.manager.current = 'Main'
return 0
sm = ScreenManager()
if __name__ == '__main__':
MainApp().run()