valnum.h

Clase wxFloatingPointValidator

Validador para entradas de texto utilizadas para la introducción de números en coma flotante.

Jerarquía:

Jerarquía de la clase wxFloatingPointValidator
template<typename T>
class wxFloatingPointValidator< T >

Este validador se puede utilizar con wxTextCtrl o wxComboBox (y potencialmente con cualquier otra clase que implemente la interfaz wxTextEntry) para comprobar que sólo se pueden introducir en ellos valores de coma flotante válidos. Actualmente solo se admite el formato fijo en la entrada, es decir, no se admite el formato científico con mantisa y exponente.

Esta clase de plantilla puede instanciarse tanto para float como para double, los valores long double no están soportados actualmente.

De forma similar a wxIntegerValidator<>, el rango para los valores aceptados se establece por defecto de forma apropiada para el tipo. Además, este validador permite especificar el número máximo de dígitos que se pueden introducir después del separador decimal. Por defecto, esto también se establece de forma apropiada para el tipo utilizado, por ejemplo, 6 para float y 15 para double en una implementación típica basada en IEEE-754. Al igual que con el rango, la precisión puede restringirse después de la creación del validador si es necesario.

Cuando el validador muestra números con separadores decimales o de miles, los caracteres utilizados para los separadores (normalmente "." o ",") dependen de la configuración regional establecida con wxLocale (Hay que tener en cuenta que no debe cambiar la configuración regional con setlocale() ya que esto puede provocar un desajuste entre los separadores utilizados por wxLocale y los utilizados por la biblioteca en tiempo de ejecución).

Un ejemplo sencillo de uso de esta clase:

class MyDialog : public wxDialog
{
public:
    MyDialog()
    {
        ...
        // Allow floating point numbers from 0 to 100 with 2 decimal
        // digits only and handle empty string as 0 by default.
        wxFloatingPointValidator<float>
            val(2, &m_value, wxNUM_VAL_ZERO_AS_BLANK);
        val.SetRange(0, 100);
 
        // Associate it with the text control:
        new wxTextCtrl(this, ..., val);
    }
 
private:
    float m_value;
};

Tipos

ValueType

template<typename T > typedef T wxFloatingPointValidator< T >::ValueType

Tipo de los valores con los que se utiliza este validador.

Funciones miembro

wxFloatingPointValidator()

template<typename T > typedef T wxFloatingPointValidator< T >::wxFloatingPointValidator( ValueType * value = NULL, int style = wxNUM_VAL_DEFAULT )

Constructor para el validador utilizando la precisión por defecto.

Parámetros
value
Un puntero a la variable asociada con el validador. Si no es NULL, esta variable debe tener un tiempo de vida igual o superior al tiempo de vida del validador (que normalmente viene determinado por el tiempo de vida de la ventana).
style
Una combinación de valores del enum wxNumValidatorStyle.
wxFloatingPointValidator()

template<typename T > typedef T wxFloatingPointValidator< T >::wxFloatingPointValidator( int precision, ValueType * value = NULL, int style = wxNUM_VAL_DEFAULT )

Constructor para validador especificando la precisión.

Parámetros
precision
El número de dígitos decimales después del separador decimal a mostrar y aceptar.
value
Un puntero a la variable asociada con el validador. Si no es NULL, esta variable debe tener un tiempo de vida igual o superior al tiempo de vida del validador (que normalmente viene determinado por el tiempo de vida de la ventana).
style
Una combinación de valores de la enum wxNumValidatorStyle.
SetFactor()

template<typename T > typedef T wxFloatingPointValidator< T >::SetFactor(double factor)

Factor utilizado para mostrar el valor.

El valor asociado con el validador se multiplica por el factor antes de mostrarlo y se divide por él cuando se recupera su valor del control. Por defecto, el factor es 1, por lo que el valor real no se ve afectado por él, pero se puede establecer en, por ejemplo, 100, para mostrar el valor en porcentajes sin dejar de almacenarlo como valor absoluto.

SetPrecision()

template<typename T > typedef T wxFloatingPointValidator< T >::SetPrecision(unsigned precision)

Fijar la precisión.

La precisión es el número de dígitos mostrados (y aceptados en la entrada) después del punto decimal. Por defecto, se establece en la precisión máxima soportada por el tipo manejado por el validador en su constructor.

Métodos y datos heredados

Esta clase hereda los métodos y datos miembro públicos y protegidos de wxObject, wxEvtHandler, wxValidator y wxNumValidator<T>.