Python | Widget de vista de desplazamiento 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 .

Vista de desplazamiento:

El widget ScrollView proporciona una ventana panorámica desplazable que se recorta en el cuadro delimitador de la vista de desplazamiento. La vista de desplazamiento acepta solo un hijo y le aplica una ventana de acuerdo con 2 propiedades: 

  1. pergamino_x
  2. scroll_y

Para determinar si la interacción es un gesto de desplazamiento, se utilizan estas propiedades:

  • scroll_distance : la distancia mínima para viajar, por defecto es de 20 píxeles.
  • scroll_timeout : el período de tiempo máximo, por defecto es de 55 milisegundos.

Nota: 
Para usar la vista de desplazamiento, debe importarla:
from kivy.uix.scrollview import ScrollView

Basic Approach:
1) import kivy
2) import kivyApp
3) import scroll view
4) import string property
5) Set minimum version(optional)
6) create the scroll view class
7) Build the .kv file within the .py file
8) Run an app

Implementación del código:

Python3

# Program to explain how to use scroll view in kivy 
        
# 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')
 
# The Label widget is for rendering text
from kivy.uix.label import Label
 
# The ScrollView widget provides a scrollable view
from kivy.uix.scrollview import ScrollView
 
# Property that represents a string value
from kivy.properties import StringProperty
 
# Static main function that starts the application loop.
from kivy.base import runTouchApp
 
# Builder is a global Kivy instance used in
# widgets that you can use to load other
# kv files in addition to the default ones.
from kivy.lang import Builder
 
 
# Build the .kv file
Builder.load_string('''
 
# Define the scroll view
<ScrollableLabel>:
    text: 'You are learning Kivy' * 500
    Label:
        text: root.text
        font_size: 50
        text_size: self.width, None
        size_hint_y: None
        height: self.texture_size[1]
''')
 
 
# Define scrollview class
class ScrollableLabel(ScrollView):
    text = StringProperty('')
 
# run the App
runTouchApp(ScrollableLabel())

Producción: 

También puede cambiar el color de ScrollBar y su ancho como se muestra debajo del código, pero para eso, debe usar propiedades de ScrollView como 

  1. bar_color: Requiere una lista en formato RGB para especificar el color de la barra
  2. bar_width: Requiere un número para especificar el tamaño de la barra

Código para cambiar el color de la barra y el ancho de la barra:

Python3

from kivy.app import App
 
# importing builder from kivy
from kivy.lang import Builder
 
 
# this is the main class which will
# render the whole application
class uiApp(App):
 
    # method which will render our application
    def build(self):
        return Builder.load_string(
 
            BoxLayout:
            size_hint: (1, 1)
            ScrollView:
 
            # here we can set bar color
            bar_color: [0, 0, 255, 1]
 
            # here we can set bar width
            bar_width: 12
 
            BoxLayout:
 
 
 
            size: (self.parent.width, self.parent.height-1)
            id: container
            orientation: "vertical"
            size_hint_y: None
 
            height: self.minimum_height
 
            canvas.before:
            Color:
 
            rgba:  rgba("#50C878")
            Rectangle:
 
            pos: self.pos
            size: self.size
 
            Label:
            size_hint: (1, None)
            height: 300
            markup: True
            text: "[size=78]GeeksForGeeks[/size]"
            Label:
            size_hint: (1, None)
            height: 300
            markup: True
            text: "[size=78]GeeksForGeeks[/size]"
            Label:
            size_hint: (1, None)
            height: 300
            markup: True
            text: "[size=78]GeeksForGeeks[/size]"
            Label:
            size_hint: (1, None)
            height: 300
            markup: True
            text: "[size=78]GeeksForGeeks[/size]"
 
        )
 
 
# running the application
uiApp().run()

Producción:

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 *