Как видно из названия, я хочу иметь возможность изменять цвет фона виджета с сеткой в Киви
Я использую следующий код:
from kivy.utils import get_color_from_hex
from kivy.graphics import Color, Rectangle
from kivy.lang import Builder
from kivy.base import runTouchApp
from kivy.uix.gridlayout import GridLayout
Builder.load_string('''
#:import utils kivy.utils
<BlueGrid>:
GridLayout:
canvas.before:
Color:
rgb: utils.get_color_from_hex("#39B3F2")
Rectangle:
size: self.size
pos: self.pos
rows: 1
cols: 2
pos_hint: {"top": 1, "left": 1}
size_hint: 1, 1
Label:
text: "First Label"
id: Label_1
Label:
text: "Second Label"
id: Label_2
''')
class BlueGrid(GridLayout):
pass
runTouchApp(BlueGrid())
Я ожидаю синяя сетка, где каждый столбец заканчивается заполнением одной меткой. Вместо этого я получаю вывод ниже, где все сосредоточено в левом нижнем углу: output gridlayout
Я также попытался запустить класс "BlueGrid" без runTouchapp, с тем же результатом :
class MyApp(App):
def build(self):
return BlueGrid()
if __name__ == "__main__":
MyApp().run()
print(kivy.__file__)
Чего мне не хватает? Почему две метки и прямоугольник в Gridlayout расположены друг над другом?