Python | PageLayout 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.

Tutorial de Kivy: aprenda Kivy con ejemplos

Diseño de página:

PageLayout funciona de manera diferente a otros diseños. Es un diseño dinámico, en el sentido de que permite hojear las páginas utilizando sus bordes. La idea es que sus componentes estén apilados uno frente al otro, y solo podamos ver el que está en la parte superior. 
La clase PageLayout se usa para crear un diseño simple de varias páginas, de una manera que permite pasar fácilmente de una página a otra usando el borde.

Para usar PageLayout, debe importarlo con el siguiente comando:  

from kivy.uix.pagelayout import PageLayout

Nota: 
PageLayout actualmente no respeta las propiedades size_hint, size_hint_min, size_hint_max o pos_hint. Eso significa que no podemos usarlas todas en un diseño de página.

Enfoque básico para crear PageLayout:  

1) import kivy
2) import kivyApp
3) import Pagelayout
4) import button
5) Set minimum version(optional)
6) create App class:
        - define build() function
7) return Layout/widget/Class(according to requirement)
8) Run an instance of the class

Implementación del Enfoque: 

Python3

# Sample Python application demonstrating 
# How to create PageLayout in Kivy
   
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
 
# 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
 
# creates the button in kivy 
# if not imported shows the error 
from kivy.uix.button import Button
   
class PageLayout(PageLayout):
    """
    Define class PageLayout here
    """
  
    def __init__(self):
         
        # The super function in Python can be
        # used to gain access to inherited methods
        # which is either from a parent or sibling class.
        super(PageLayout, self).__init__()
 
        # creating buttons on different pages
        btn1 = Button(text ='Page 1')
         
        btn2 = Button(text ='Page 2')
  
        btn3 = Button(text ='Page 3')
 
        # adding button on the screen
        # by add widget method
        self.add_widget(btn1)
 
        self.add_widget(btn2)
 
        self.add_widget(btn3)
  
 
# creating the App class
class Page_LayoutApp(App):
    """
    App class here
    """
  
    def build(self):
        """
        build function here
        """
        return PageLayout()
  
 
# Run the App
if __name__ == '__main__':
    Page_LayoutApp().run()

Salida:
imagen de la página 1 

Imagen de la página 2 

Imagen de la página 3 

En PageLayout puede agregar algunas características en cada página. Podemos agregar imágenes, crear lienzos, agregar colores, agregar múltiples widgets, múltiples diseños. 
Así es como podemos usar PageLayout de manera eficiente. Uno de los mejores ejemplos Nuestra galería Contiene varias páginas.
A continuación se muestra el código en el que agrego el color diferente a cada página con la ayuda de get_color_from_hex

Implementación del PageLayout con características 

Python3

# Sample Python application demonstrating the
# working of PageLayout in Kivy with some features
   
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
 
# 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
 
# creates the button in kivy 
# if not imported shows the error 
from kivy.uix.button import Button
 
 
# The Utils module provides a selection of general utility
# functions and classes that may be useful for various applications.
# These include maths, color, algebraic and platform functions.
# Here we are using color from the module
# By get_color_from_hex
# Transform a hex string color to a kivy Color.
from kivy.utils import get_color_from_hex
   
class PageLayout(PageLayout):
    """
    Define class PageLayout here
    """
  
    def __init__(self):
         
        # The super function in Python can be
        # used to gain access to inherited methods
        # which is either from a parent or sibling class.
        super(PageLayout, self).__init__()
 
        # creating buttons on different pages
 
        # Button 1 or Page 1
        btn1 = Button(text ='Page 1')
        # Adding Colour to page
        # Here we are using colour from
     
        btn1.background_color = get_color_from_hex('# FF0000')
  
        btn2 = Button(text ='Page 2')
        btn2.background_color = get_color_from_hex('# 00FF00')
  
        btn3 = Button(text ='Page 3')
        btn3.background_color = get_color_from_hex('# 0000FF')
  
 
        # adding button on the screen
        # by add widget method
        self.add_widget(btn1)
 
        self.add_widget(btn2)
 
        self.add_widget(btn3)
  
 
# creating the App class
class Page_LayoutApp(App):
    """
    App class here
    """
  
    def build(self):
        """
        build function here
        """
        return PageLayout()
  
 
# Run the App
if __name__ == '__main__':
    Page_LayoutApp().run()

Salida:
Página 1 

Página 2 

Página 3 

Salida de vídeo: 
 

Nota: Más efectivo cuando funciona en Android, iOS, cualquier otra computadora portátil compatible con el tacto. 
Referencia: https://kivy.org/doc/stable/api-kivy.uix.pagelayout.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 *