Python | Diseños en diseños (Diseños múltiples) en Kivy

Kivy es una herramienta GUI independiente de la plataforma en Python. Como se puede ejecutar en Android, IOS, Linux y Windows, etc. Básicamente se usa para desarrollar la aplicación de Android, pero eso no significa que no se pueda usar en aplicaciones de escritorio.
En este artículo, vamos a discutir cómo podemos usar diseños en diseños básicamente múltiples Diseños, el ejemplo más básico. 
La mayoría de las veces podemos usar un diseño pero tenemos dificultades para usar varios diseños.

Tutorial de Kivy: aprenda Kivy con ejemplos .

En kivy hay muchos tipos de diseños:  

  1. AnchorLayout: los widgets se pueden anclar en la parte superior, inferior, izquierda, derecha o central.
  2. BoxLayout: los widgets se organizan secuencialmente, ya sea en una orientación ‘vertical’ u ‘horizontal’.
  3. FloatLayout: los widgets esencialmente no tienen restricciones.
  4. RelativeLayout: los widgets secundarios se colocan en relación con el diseño.
  5. GridLayout: los widgets se organizan en una cuadrícula definida por las propiedades de filas y columnas.
  6. PageLayout : se utiliza para crear diseños simples de varias páginas, de una manera que permite pasar fácilmente de una página a otra usando bordes.
  7. ScatterLayout: los widgets se colocan de manera similar a RelativeLayout, pero se pueden traducir, rotar y escalar.
  8. StackLayout: los widgets se apilan en orden lr-tb (de izquierda a derecha y luego de arriba a abajo) o tb-lr.

Nota: Puede usar tantos como pueda en un solo archivo.

Enfoque básico para crear múltiples diseños en un archivo:  

1) import kivy
2) import kivyApp
3) import BoxLayout
4) import 
4) set minimum version(optional)
5) Extend the container class
6) set up .kv file :
7) create App class
8) return container class or layout
9) Run an instance of the class

Implementación del Enfoque –
archivo main.py

Nota: 
si estaba utilizando el archivo .kv para crear varios diseños, no es necesario importar Gridlayout, Boxlayout, AnchorLayout, FloatLayout, StackLayout, PageLayout, Button, etc. Como el archivo .kv admite todo esto, ya que ya lo ha importado. Pero si hace esto sin el archivo .kv, debe importarlos. 

Python3

## Sample Python application demonstrating the
## Program of How to use Multiple Layouts in Single file
 
########################################################################
 
# import kivy module  
import kivy
   
# base Class of your App inherits from the App class.  
# app:always refers to the instance of your application 
from kivy.app import App
 
# this restrict the kivy version i.e
# below this kivy version you cannot
# use the app or software
kivy.require('1.9.0')
 
# creates the button in kivy 
# if not imported shows the error
from kivy.uix.button import Button
   
# BoxLayout arranges children in a vertical or horizontal box.
# or help to put the childrens at the desired location.
from kivy.uix.boxlayout import BoxLayout
 
# The GridLayout arranges children in a matrix.
# It takes the available space and
# divides it into columns and rows,
# then adds widgets to the resulting “cells”.
from kivy.uix.gridlayout import GridLayout
 
# The PageLayout class is used to create
# a simple multi-page layout,
# in a way that allows easy flipping from
# one page to another using borders.
from kivy.uix.pagelayout import PageLayout
 
 
########################################################################
 
# creating the root widget used in .kv file
class MultipleLayout(PageLayout):
    pass
 
########################################################################
 
# creating the App class in which name
#.kv file is to be named PageLayout.kv
class Multiple_LayoutApp(App):
    # defining build()
    def build(self):
        # returning the instance of root class
        return MultipleLayout()
 
########################################################################
     
# creating object of Multiple_LayoutApp() class
MlApp = Multiple_LayoutApp()
 
# run the class
MlApp.run()

En este archivo, estamos creando/usando todo el diseño, ya que es más fácil de construir/usar todo esto en el archivo 
.kv . Archivo .kv del código.

Python3

# Program of How to use Multiple Layouts in Single .kv file
 
########################################################################
 
# creating page Layout
<PageLayout>:
 
#########################################################################
     
    # Creating Page 1
     
    # Using BoxLayout inside PageLayout
    BoxLayout:
 
        # creating Canvas
        canvas:
            Color:
                rgba: 216 / 255., 195 / 255., 88 / 255., 1
            Rectangle:
                pos: self.pos
                size: self.size
 
        # Providing orientation to the BoxLayout
        orientation: 'vertical'
 
        # Adding Label to Page 1
        Label:
            size_hint_y: None
            height: 1.5 * self.texture_size[1]
            text: 'page 1'
 
        # Creating Button
        Button:
            text: 'GFG :)'
             
            # Adding On_press function
            # i.e binding function to press / touch
            on_press: print("This Is The First Page")
 
#########################################################################
 
    # Creating Page 2
 
    BoxLayout:
        orientation: 'vertical'
        canvas:
            Color:
                rgba: 109 / 255., 8 / 255., 57 / 255., 1
            Rectangle:
                pos: self.pos
                size: self.size
        Label:
            text: 'page 2'
 
        # This Image is directly from the websource
        # By using AsyncImage you can use that
        AsyncImage:
            source: 'http://kivy.org / logos / kivy-logo-black-64.png'
 
##########################################################################
 
    # Creating Page 3
 
    # Using The Second Layout
    # Creating GridLayout
    GridLayout:
 
 
        canvas:
            Color:
                rgba: 37 / 255., 39 / 255., 30 / 255., 1
            Rectangle:
                pos: self.pos
                size: self.size
 
 
        # Adding grids to Page 3
        # It may be row or column
        cols: 2
 
 
        # In first Grid
        # Adding Label + Image
        Label:
            text: 'page 3'
 
        AsyncImage:
            source: 'http://kivy.org/slides/kivyandroid-thumb.jpg'
 
 
        # In Second Grid
        # Adding Button + Image
        Button:
            text: 'Its User:):)'
            on_press: print("Heloo User This is the Last Page")
 
        AsyncImage:
            source: 'http://kivy.org/slides/kivypictures-thumb.jpg'
 
 
        # In third grid
        # Adding Widget + Image
         
        Widget
 
        AsyncImage:
            source: 'http://kivy.org/slides/particlepanda-thumb.jpg'

Salida:
Imagen 1: 

Imagen 2: 

Imagen 3: 

Salida de vídeo: 

  Referencia: https://kivy.org/doc/stable/gettingstarted/layouts.html
 

Publicación traducida automáticamente

Artículo escrito por YashKhandelwal8 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *