13 de Abril, 2004

Primer problema con Qt

Las tablas es un elemento importante en cualquier programa de gestión ya que resulta un widget bastante atractivo para mostrar información.

El sistema que proporciona Qt para manejar tablas está bastante bien. La verdad es que el diseño OO de este toolkit me gusta en general. Tiene un árbol de clases excelente, y por ahora solo me he salido de él para usar las funciones de MySQL para acceder a la base de datos.

Detalle de tabla
La celda problemática

Pero mejor no me voy por las ramas (del árbol de clases :D). Resulta que en el objeto QTable se introducen elementos QTableItem, que pueden ser texto, pixmaps o cualquier control que deseemos. Mejor no: cualquier control que implementemos.

Los chicos de Trolltech nos proporcionan algunas implementaciones para esos elementos, como la que toma un QString como parámetro significativo.

Hasta ahora estaba más feliz que un dos porque con esas implementaciones tenía más que suficiente. Hasta ahora :(.

Al tomar la cadena de texto del QString el QTableItem de Trolltech emplea un QLineEdit y hace algunas valoraciones. Por ejemplo en lo que respecta al alineamiento del texto. A la izquierda si es texto y a la derecha si es un número, bastante razonable.

Pero los valores monetarios (en un círculo rojo en la imagen) ¡no los distingue como números! Mi gozo en un pozo y la única salida es implementar un QTableItem que contemple ese tipo de valor numérico.

Supongo que añadiré el valor € al final de la cantidad y me basaré en ese caracter para mostrar yo con la alineación adecuada el texto, y simplemente dejaré que la implementación disponible decida para otras cadenas.

Además tengo que ver donde pongo comas y donde puntos. MySQL con format muestra los números como en la imagen, pero no tengo claro si en España esa es la nomeclatura correcta (aunque tal y como está lleva las de ganar, porque es como MySQL me permite formatear).

Claro que si alguien tiene una alternativa mejor... :D.

Actualización: Elimino las comas con replace(format(valor,2),',','') en las consultas SQL. No es muy elegante pero simplifica mucho la aplicación.

Anotación por Juan J. Martínez.

Hay 1 comentario

Gravatar

Felipe es el amo :)

Resulta que no puedo formatear mediante MySQL los valores porque Qt no entiende ese formato, y en las operaciones matemáticas se hace la picha un lio.

La prueba es registrar un concepto:

cod: 0005
desc: Felipe sabe
imp: 3500

Al intentar introducirlo en una factura MySQL devuelve de importe 3,500.00, lo que no es un valor númerico para las Qt (por la coma).

por Juanjo, en 2004-04-14 00:23:45

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.