Kivy é uma plataforma independente, pois pode ser executado em Android, IOS, linux e Windows etc. Kivy fornece a você a funcionalidade de escrever o código uma vez e executá-lo em diferentes plataformas. É basicamente usado para desenvolver o aplicativo Android, mas não significa que não possa ser usado em aplicativos para Desktops.

?? Tutorial Kivy - Aprenda Kivy com exemplos .

GridLayout:

  • O widget deve ser colocado em uma coluna / linha específica. Cada filho recebe automaticamente uma posição determinada pela configuração do layout e pelo índice do filho na lista de filhos.
  • O layout da grade deve sempre conter qualquer uma das restrições de entrada abaixo:
    GridLayout.cols ou GridLayout.rows. Se você não especificar colunas ou linhas, o Layout lançará uma exceção.
  • O GridLayout organiza os filhos em uma matriz. Ele ocupa o espaço disponível e o divide em colunas e linhas e, em seguida, adiciona widgets às “células” resultantes.
  • A linha e as colunas são as mesmas que observamos em uma matriz, aqui podemos ajustar o tamanho de cada grade.
  • Inicialmente, o tamanho é fornecido pelas propriedades col_default_width e row_default_height. Podemos forçar o tamanho padrão definindo a propriedade col_force_default ou row_force_default. Isso forçará o layout a ignorar as propriedades width e size_hint dos filhos e usar o tamanho padrão.

A primeira coisa que precisamos fazer para usar um GridLayout é importá-lo.

de kivy.uix.gridlayout import GridLayout 

Abordagem básica para criar GridLayout:

1) importar kivy
2) importar kivyApp
3) botão de importação
4) importar Gridlayout
5) Defina a versão mínima (opcional)
6) criar classe de aplicativo:
          - definir a função de construção
              : adicionar widget (botões)
7) retornar Layout / widget / Classe (de acordo com o requisito)
8) Execute uma instância da classe

 
Implementação da abordagem -



Código # 1:
No exemplo abaixo, todos os widgets terão o mesmo tamanho. Por padrão, o size_hint é (1, 1), então um widget terá o tamanho total do pai:

import kivy  
    
from kivy.app import App  
    
from kivy.uix.button import Button 
  
from kivy.uix.gridlayout import GridLayout 
class Grid_LayoutApp(App): 
  
    
    
    def build(self): 
      
        layout = GridLayout(cols = 2) 
        layout.add_widget(Button(text ='Hello 1')) 
        layout.add_widget(Button(text ='World 1')) 
        layout.add_widget(Button(text ='Hello 2')) 
        layout.add_widget(Button(text ='World 2')) 
        layout.add_widget(Button(text ='Hello 3')) 
        layout.add_widget(Button(text ='World 3')) 
        layout.add_widget(Button(text ='Hello 4')) 
        layout.add_widget(Button(text ='World 4')) 
        return layout 
root = Grid_LayoutApp() 
root.run() 

 
Referência: https://kivy.org/doc/stable/api-kivy.uix.gridlayout.html