Python: redondear las esquinas de los botones en kivy usando el archivo .kv

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, aprenderemos cómo redondear las esquinas de los botones en kivy usando un archivo .kv en Python.
Los widgets siempre son rectangulares, pero podemos cambiar el fondo de los widgets y poner un par de imágenes para el estado normal y el estado inactivo del botón usando algunas propiedades de los botones como background_normal y background_down respectivamente. Además, para redondear las esquinas del botón, también debe comprender una propiedad más del botón que es la propiedad del borde.
 

background_down: 
1) Imagen de fondo del botón utilizado para la representación gráfica predeterminada cuando se presiona el botón. 
2) background_down es una StringProperty.
background_normal: 
1) Imagen de fondo del botón utilizado para la representación gráfica predeterminada cuando el botón no está presionado. 
2) background_normal también es un
borde StringProperty: 
1) Borde utilizado para la instrucción de gráficos BorderImage. Usado con background_normal y background_down. Se puede utilizar para fondos personalizados. 
2) Debe ser una lista de cuatro valores: (abajo, derecha, arriba, izquierda). 
3) border es ListProperty y su valor predeterminado es (16, 16, 16, 16) 
 

Sintaxis de todas las propiedades anteriores: 
 

Python3

background_normal: 'normal.png'
background_down: 'down.png'
border: 30, 30, 30, 30
Basic Approach:

1) import kivy
2) import kivyApp
3) import button and floatlayout
4) set minimum version(optional)
5) Create the Layout class
6) Create App class
7) Create .kv file:
          1) Add Base class
          2) Add Button properties
          3) Add Image as button
          4) Round the corners of the button using border property
8) return instance of the layout class
9) Run an instance of the class

Tutorial de Kivy: aprenda Kivy con ejemplos.

A continuación se muestran las dos imágenes que utilizo en este ejemplo:
normal.png y down.png 
 

Ahora debajo está el código que implementa mi enfoque:
main.py 
 

Python3

## Sample Python application demonstrating that  
## how to create button corners round in kivy using .kv file
      
##################################################         
# import kivy module
import kivy
   
# this restrict the kivy version i.e
# below this kivy version you cannot
# use the app or software
kivy.require("1.9.1")
   
# base Class of your App inherits from the App class.
# app:always refers to the instance of your application
from kivy.app import App
 
# module consist the floatlayout
# to work with FloatLayout first
# you have to import it
from kivy.uix.floatlayout import FloatLayout
 
# creates the button in kivy
# if not imported shows the error
from kivy.uix.button import Button
 
# this restrict the kivy version i.e  
# below this kivy version you cannot  
# use the app or software  
kivy.require('1.9.0') 
    
# to change the kivy default settings we use this module config
from kivy.config import Config
    
# 0 being off 1 being on as in true / false
# you can use 0 or 1 && True or False
Config.set('graphics', 'resizable', True)
 
# creating the root widget used in .kv file
class Base(FloatLayout):
    pass
 
# class in which we are creating the imagebutton
# in .kv file to be named Btn.kv
class BtnApp(App):
    # defining build()
    def build(self):
        # returning the instance of root class
        return Base()
 
# run function runs the whole program
# i.e run() method which calls the target
# function passed to the constructor.
if __name__ == "__main__":
    BtnApp().run()

btn.kv
 

Python3

#.kv file implementation of rounding the corners of button 
 
 
# create a fully styled functional button
# Adding images normal.png and down.png
<Base>:
    Button:
        text: 'Hit me !!'
 
        # Button properties for image
        background_normal: 'normal.png'
        background_down: 'down.png'
 
        # To round the corners we use border
        border: 30, 30, 30, 30
 
        # Adding background color to button you can comment it
        background_color: 0.1, 0.5, 0.6, 1
         
        size_hint: .3, .3
        pos_hint: {"x":0.35, "y":0.3}

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 *