es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Comprendiendo el comportamiento del rango QDoubleValidator

La especificación de las opciones ‘top’ y ‘bottom’ parece tener un comportamiento extraño. La siguiente pregunta respondida proporcionó algunas ideas útiles, pero no lo soluciona todo.

Con el código:

import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

app = QApplication(sys.argv)

input = QLineEdit()
input.setValidator(QDoubleValidator(0.00,10.00,5,notation=QDoubleValidator.StandardNotation))

input.show()
sys.exit(app.exec_())

La caja de entrada acepta cualquier número por debajo de 100, pero esperaría que solo aceptara números por debajo de 10 … Por ejemplo, 99.55656 se acepta sin problemas …

¿Qué es lo que me falta?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el QDoubleValidator no está restringiendo la entrada dentro del rango deseado de 0.00 a 10.00. Una posible explicación para este comportamiento es que el parámetro de notación del QDoubleValidator está configurado en StandardNotation, lo que permite ingresar notación científica. Como resultado, un número como 99.55656 se considera válido, ya que puede expresarse en notación científica como 9.955656 x 10^1.

    Para restringir la entrada solo a números entre 0.00 y 10.00, el parámetro de notación del QDoubleValidator debe configurarse en DecimalNotation en su lugar. Esto asegurará que la entrada solo se acepte si se encuentra dentro del rango deseado y se ingresa en notación decimal.

    El código corregido se vería así:

    import sys
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *
    
    app = QApplication(sys.argv)
    
    input = QLineEdit()
    input.setValidator(QDoubleValidator(0.00,10.00,5,notation=QDoubleValidator.DecimalNotation))
    
    input.show()
    sys.exit(app.exec_())
    

Comments are closed.