Kivy MDGridLayout фиксированный размер столбца

#python #kivy

#python #kivy

Вопрос:

 ScrollView:
        MDGridLayout:
            id: grid_module_card
            cols: 3
            padding: 30, 30
            spacing: 30, 30
            size_hint_y: None
            height: self.minimum_height
            adaptive_height: True
            row_default_height: 500
            md_bg_color: 0.708, 0.281, 0.097, 1
  

Я использую .add_widget для добавления настраиваемых ячеек в макет. Когда в GridLayout есть только 1 ячейка, ячейка занимает всю строку, но я хочу, чтобы она была только в первом столбце, занимая 1/3 экрана. Как я могу это исправить?

Ответ №1:

Вы можете установить col_default_width нужную ширину для каждого столбца:

 col_default_width: self.width/3
  

или, возможно, более точно:

 col_default_width: (self.width - self.padding[0] - self.padding[2] - self.cols * self.spacing[0])/self.cols
  

Существуют и другие возможности, использующие cols_minimum и col_force_default посмотрите документацию GridLayout.