Agregue el botón de imagen usando el archivo .kv 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.
Como hemos discutido anteriormente sobre cómo trabajar con imágenes, ahora aprenderemos cómo usar las imágenes y crear un botón con ellas. Entonces, en este artículo, aprenderemos cómo podemos usar las imágenes como el botón usando la funcionalidad del archivo .kv y también le daremos un poco de estilo al botón. Pero antes de comenzar, aprendamos algunas propiedades del botón:
 

background_down : imagen de fondo del botón que se utiliza para la representación gráfica predeterminada cuando se presiona el botón. 
background_normal : imagen de fondo del botón que se usa para la representación gráfica predeterminada cuando no se presiona el botón. 
background_disabled_normal : imagen de fondo del botón que se usa para la representación gráfica predeterminada cuando el botón está deshabilitado y no presionado.
Estas 3 propiedades son una StringProperty, lo que significa que solo toman strings como valores.

Para usar el botón, debe importar: 
 

import kivy.uix.button as Button
Basic Approach:

1) import kivy
2) import kivyApp
3) import button
4) import FloatLayout
5) set minimum version(optional)
6) Create the Layout class
7) Create App class
8) Create .kv file:
          1) Add Base class
          2) Add Button properties
          3) Add Image as button
          4) Resizing, Positioning, functionality etc of Imagebutton 
9) return instance of the layout class
10) Run an instance of the class

Tutorial de Kivy: aprenda Kivy con ejemplos.

Imagen utilizada en este artículo –  
normal.png: 
 

abajo.png: 
 

archivo principal.py 
 

Python3

## Sample Python application demonstrating that  
## how to create button using image 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):
 
    # Adding functionality and arranging a callback to a button
    def __init__(self, **kwargs):
        super(Base, self).__init__(**kwargs)
 
    def say_hello(self):
        print("hello")
 
# 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()
  

Archivo .kv: 
 

Python3

#.kv file implementation of setting position, size and functionality of btn  
 
 
# create a fully styled functional button
# Adding images normal.png and down.png
<Base>:
    Button:
        text: 'Hit me !!'
        background_normal: 'normal.png'
        background_down: 'down.png'
        size_hint: .3, .3
        pos_hint: {"x":0.35, "y":0.3}
        on_press: root.say_hello()

Salida:
cuando el botón no está presionado 
 

Cuando se presiona el botó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 *