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