Un principiante en las Artes Gráficas Una experiencia en un sector que nos envuelve… El blog personal de David Pinelo.

29Ago/080

Qt: Signals and slots

Las librerías Qt proporcionan una API de programación con una orientación clara a las aplicaciones de escritorio. En este tipo de aplicaciones, es importante proveer de un mecanismo claro de comunicación entre objetos para simplificar la programación de aplicaciones. Me explico, en aplicaciones de escritorios, debemos tener alguna forma para conocer cuándo el usuario pulsa un botón, selecciona un ítem de un combo, o introduce texto en un control de texto. Las Qt proporcionan un mecanismo basado en "Signals" y "Slots".

La idea es, cuando se produce un evento en un objeto, éste puede emitir una señal. Esa señal se puede conectar con un slot (que no deja de ser un método de otro objeto) que respone a esa señal.

5Ago/080

Qt: Sistema de propiedades…

Las librerías Qt proporcionan un sistema de propiedades similar al sistema de propiedades que ofrecen las VCL de Borland, por ejemplo. Sin embargo, mientras que otros fabricantes utilizan directivas de compilador para la definición de propiedades, Qt lo delega en su sistema de Meta Objetos (del que hablaré un día de estos).

¿Qué son las propiedades? Imaginemos un objeto, (en Qt cualquier clase que implementa la directiva del sistema de Meta Objetos Q_OBJECT). El objeto puede ser un objeto a utilizar en la GUI, o bien cualquier otro tipo de objeto. Una propiedad viene a tener un comportamiento muy parecido a los atributos de la clase, pero dispone de ciertas características adicionales. La principal (o la que por el momento me ha resultado más útil), puede accederse a la propiedad sin conocer la propia clase que implementa el objeto en sí.

Etiquetado con: Continúa leyendo
29Jul/080

Algunas de las cosas que más me gustan de las Qt… Extendiendo controles: Editando números.

Uno de los detalles que más me gustan de las librerías Qt es la posibilidad de extender controles de GUI fácilmente, gracias al mecanismo de Signals/Slots que tiene. Es cierto que con otros toolkits, existen las mismas posibildades, pero para mi gusto, el nivel de limpieza, claridad y elegancia de las Qt es muy destacado. Pongamos un ejemplo, vamos a crear un control básico de texto (un TextEdit de los clásicos) con posibilidades de editar números y formatearlos adecuadamente según el locale que deseemos. Para ello, extenderemos QLineEdit, el widget de edición de líneas de texto.

14Jul/083

Open Source, ERP, Qt…

Entre los proyectos que tengo en mente en esta nueva andadura profesional, tengo previsto terminar un sistema ERP para la imprenta. Inicié el "programa" hace ya... 13 años, y lo inicié como una pequeña base de datos para llevar un control de facturación, albaranes y poco más...

A día de hoy, genera informes de situación, tiene un módulo de captura de datos en planta, un módulo de presupuesto con estimaciones configurables de tiempos de máquina, materiales y características del producto a obtener, un módulo de almacén... No está completo, queda aún mucho, y le voy dedicando ratillos de mi jornada, pero también muchos ratos de mis fines de semana, vacaciones...

Existen programas comerciales que la verdad, me parecen realmente interesantes. Están ahí los Inextrama, Optimus, Gestión 21, Palmart... que son grandes paquetes software, pero que no acababan de cuadrar para mi empresa. Las razones: su genericidad. Cierto es que son ampliamente configurables y parametrizables, pero no es menos cierto que la mayoría de ellos proponen una misma solución para empresas con rotativas o con un equipo comercial de 20 personas que para una pequeña empresa con una única máquina de producción. Y ese, "comprar un gran paquete software para utilizar sólo el 10% de su capacidad" me parecía desperdiciar recursos.

Y como tenía el software iniciado desde hacía tiempo, esto de programar me gusta, y he tenido la gran suerte en mi trayectoria de ver grandes desarrollos software, me dicidí a completarlo yo.

Y lo he hecho en software libre, utilizando las librerías Qt para la interfaz de escritorio, y Java (Hibernate, Struts, JasperReports) para la interfaz web de generación de informes. Y desde luego, no puedo estar más satisfecho.

Qt es una librería sencillamente impresionante. Su documentación es de las mejores que he visto en software libre, el estilo, el conjunto de clases y objetos definidos están pensados y diseñados al milímetro, su capacidad de ser multiplataforma (yo desarrollo en Linux, y compilo para Windows). Sin duda, espectacular. He tenido la suerte de realizar proyectos con las OWL y las VCL de Borland, o utilizar las MFC de Microsoft, y desde luego, IMHO, Qt es superior a todas ellas.

Y qué decir de Hibernate, Struts o JasperReports, que son top ten en sus ámbitos en tecnología Java.

En cuanto tenga el proyecto en un punto de estabilidad adecuado, y sobre todo, algo más documentado, espero poder publicar los fuentes en software libre. Aunque... claro, ¿quién estará interesado en una especie de software de gestión en artes gráficas en open source?