[Kde-devel-es] QSpinBox con valores en coma flotante y el Validador

Raúl raul at escomposlinux.org
Sun Jun 27 17:45:51 CEST 2004


  Estoy intentado generar mi propio QSpinBox para poder tener valores en
  coma flotante. He pasado por varias versiones y en todas me funciona
  ese asunto, pero el validador no hay forma de hacerlo funcionar.

  Si pongo un validador del tipo QIntValidator, funciona, pero claro, no
  puedo escribir "123.345". Si pongo un QDoubleValidator la sensacion
  que da es que este no esta funcionado

  El ultimo codigo que estoy probando esta sacado directamente de:

  http://webcvs.kde.org/cgi-bin/cvsweb.cgi/kdegraphics/kview/modules/scale/
  , archivos kfloatspinbox.[cpp|h], ligeramente adaptados para
  no depender de KDE.

  Tras crear el widget hago mySpinBox1->setRange(-180.0,180.0,1,4); para
  fijar el valor minimo a -180.0, el maximo a 180, con incrementos de 1
  en 1 y 4 decimales.

   void MySpinBox::setRange( float minValue, float maxValue, float step,
                             unsigned int precision )
   {
      m_factor = (int)pow( 10.0, (double)precision );
      m_min = (int)( minValue * m_factor );
      m_max = (int)( maxValue * m_factor );
      m_step = (int)( step * m_factor);
      QSpinBox::setRange( m_min, m_max);
      setSteps( m_step, m_step * 10 * );
      if( precision == 0)
          setValidator( new QIntValidator(m_min, m_max, this));
      else
         setValidator( new QDoubleValidator(minValue, maxValue, true,this));
   }

   El rango si esta funcionado, por que no puedo pasar de 180, y el
   incremento tambien funciona, pero el validado de datos no se comporta
   como esperas.

   Se supone que si escribes en el widget 19 y acto seguido intentas
   poner otro valor, al estar fuera de rango, no deberia dejarte, pero
   curiosamente si puedo. Puedo poner cualquier valor, eso si, al perder
   el foco, el widget se pone a su valor maximo de 180.

																																									
  

-- 

                Miembro del grupo LILO: http://lilo.uah.es
	
Debian Sarge. 2.6.7
raul at escomposlinux . org
GPG ID: 0xDBA0989C
Fingerprint: FEE5 E4EB 7418 8268 8373 C692 F9AA 940D DBA0 989C



More information about the Kde-devel-es mailing list