Problemas de redondeo (II)

Después de mucho trastear, he decidido prescindir del almacenamiento de valores double en QByteArray, y emplear un valor double. Las distintas pruebas que he realizado me han demostrado donde estaba, realmente, el error. El almacenamiento es correcto, al igual que las operaciones realizadas sobre los datos double; sin embargo, el cambio de representación para presentar los datos doubles tanto en la interfaz (GUI) como en los streams de Qt realiza un redondeo de los valores por defecto. La forma de soslayar este problema, es convertir los valores double a un QByteArray para representarlo en la interfaz (en QLabel y bajo delegates) y en los QStreams. PERO, aunque la transformación es correcta, se trabaja con un límite de 6 decimales sin redondeo, y por encima de dichos valores se producen redondeos. Igualmente, se redondean los valores cuando la parte entera del número es abrumadoramente superior a la parte decimal (por ejemplo, 99999999999999999999,00000001 se convierte en un 99999999999999999999). Lo más seguro es, entonces, trabajar únicamente con seis decimales. En el caso de Salomon, no creo que sea necesario buscar más precisión.

Anuncios

Nuevo móvil

El pequeñín recien llegadoYa tengo un nuevo teléfono móvil, este con Android. El último Nokia Xpress ha cubierto con honor su cupo de horas y de trabajo, pero el pobre falleció recientemente debido a una imperdonable sobre-exposición al sol del verano (despiste mío por dejarlo fuera). El nuevo es un Samsung Galaxy Mini, que tiene lo justo y necesario para ir tirando. No voy a estar consultando el correo continuamente ni navegando por internet, así que la tarifa de teléfono sigue exactamente igual, sin tarifa de datos. Lo cual significa que tendré que tener cuidado y desconectar las aplicaciones que hagan uso de él, salvo cuando tenga una red wi-fi cerca y segura.

 
Ahora mismo estoy descargando el Necessitas para Qt, a ver si puedo probar alguna aplicación Qt sencillita en el teléfono, o si descargo el Android SDK…

¡StackedWidget animado!

Yo, pimp!Ha sido complicado. Ha sido difícil. Ha sido confuso, agotador y, sobre todo, infructuoso. Después de terminar con la clase para manejar la creación y apertura de los eventos para el programa AcoLITE, me enfrasqué en el trabajo con los acolitos. Más concretamente, sobre un aspecto que me tenía preocupado desde la anterior versión: la falta de sincronización entre la vista de tabla y el widget que permite editar los datos de las actividades. ¿Problema? Cuando pierde el foco del icono en la vista de tabla, el widget pierde la capacidad de editar los valores del modelo de la tabla, lo cual es muy poco recomendable y muy dado a errores poco visibles. Así que, al final, me decidí por separar la vista de edición de la vista normal DENTRO del widget de edición. ¿Cómo hacerlo? Empleando un stackedWidget y dos widgets diferentes: el primero, un widget de visualiación, con el fondo de los lineEdit de color amarillo y el fondo del widget también de otro color, y un widget de edición que tomaría los datos del primero, cargaría la información directamente de la tabla y que, al terminar la edición, modificará la entrada bien directamente sobre el modelo o sobre la base de datos, aún no lo tengo decidido. Este modelo de trabajo es exportable a todos los acolitos que trabajen sobre la premisa de sincronizar vistas de tablas con widgets de edición (p.e, el acólito de personas y habitaciones).

Sigue leyendo