Python Tkinter – Validación de rango de SpinBox

Requisitos previos: GUI de Python: tkinter , Python Tkinter: widget de entrada de validación  
Tkinter es un módulo de GUI (interfaz gráfica de usuario) de Python que es rápido y fácil de implementar y se usa ampliamente para crear aplicaciones de escritorio. Proporciona varios widgets básicos para construir un programa GUI. En Tkinter, Spinbox es un widget de uso común para seleccionar el número fijo de valores del rango proporcionado por el programador, pero por defecto, Spinbox acepta todos los tipos de entrada proporcionada por el usuario. Por lo tanto, necesitamos validar la entrada y aceptar solo aquellos valores que están en el rango. 
A continuación se muestra la implementación:
 

Nota: Para obtener más información sobre Validatecommand, consulte Python Tkinter – Widget de entrada de validación 
 

Python3

from tkinter import *
 
# Validating function
def validate(user_input):
    # check if the input is numeric
    if  user_input.isdigit():
        # Fetching minimum and maximum value of the spinbox
        minval = int(root.nametowidget(spinbox).config('from')[4])
        maxval = int(root.nametowidget(spinbox).config('to')[4])
 
        # check if the number is within the range
        if int(user_input) not in range(minval, maxval):
            print ("Out of range")
            return False
 
        # Printing the user input to the console
        print(user_input)
        return True
 
    # if input is blank string
    elif user_input is "":
        print(user_input)
        return True
 
    # return false is input is not numeric
    else:
        print("Not numeric")
        return False
 
 
root = Tk()
root.geometry("300x300")
root.title("Spinbox Range Validation")
 
# Creating Spinbox
spinbox = Spinbox(root, from_ = 1, to = 1000)
spinbox.pack()
range_validation = root.register(validate)
 
spinbox.config(validate ="key",
         validatecommand =(range_validation, '% P'))
 
root.mainloop()

Producción: 
 

Publicación traducida automáticamente

Artículo escrito por Soham_Lanke 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 *