Как установить цвет backgroud в поле BoxLayout в киви?

#kivy

#киви

Вопрос:

я нуб на киви, у меня есть БокСлайут:

 root = BoxLayout(orientation = "horizontal", padding = 1,background_color = [0, 1, 0, 1])  

У него очень ужасный фон (по умолчанию) как я могу установить свой цвет на фоне? я могу это понять

Ответ №1:

Сделав это, вы получите a TypeError , так как класс BoxLayout не имеет background_color свойства.

В kivy вы можете достаточно свободно создавать свое собственное графическое представление виджета. Для этого вам необходимо создать подкласс, наследующий от BoxLayout с требуемым свойством.

Ниже приведен пример примера, реализованного с помощью kivy lang, но вы можете сделать это на python также с некоторой привязкой (это будет немного подробным).

 from kivy.app import App from kivy.lang import Builder from kivy.properties import ColorProperty from kivy.uix.boxlayout import BoxLayout    Builder.load_string( """  lt;CustomRootgt;:  canvas:  Color:  rgba: root.background_color  Rectangle:  pos: self.pos  size: self.size  """)    class CustomRoot(BoxLayout):  background_color = ColorProperty() # The ListProperty will also work.   class MyApp(App):    def build(self):  return CustomRoot(background_color = (1, 0, 1, 1))  MyApp().run()   

Для получения дополнительной информации ознакомьтесь с документацией kivy.