Меnu:


Nuestro principal producto el Sistema de Ventas e Inventarios esta codificado en wxwidgets, QT es la alternativa a wxwidgets para desarrollo multiplataforma, cuando decidimos por wxwidgets Qt todavía pertenecía a la empresa Trolltech, ese factor decidió nuestra inclinación hacia wxwidgets. Sin embargo recientemente nos hemos visto en la necesidad de desear portar el OneHandMenu (estuvo hecho en Gtk para el Nokia N900) a QT para el Nokia N9 que usa como sistema operativo el Meego. Vista dicha necesidad estamos aprovechando antes de codificar el OneHandMenu en QT en portar el timelineApp a QT.

Cuantos binarios de timelineApp tenemos

1. wxwidgets
2. Gtk
3. commonQT
4. QT

Como ven, tan solo leyendo y comparando nuestros artículos de desarrollo del timelineApp, podemos ver diferentes implementaciones en diferentes lenguajes de programación con diferentes librerías para la misma funcionalidad o el mismo aplicativo.

Detalles de la implementación

El Qt como toolkit de interfaz de usuario para el timelineApp, no usa un dialogo creado dinámicamente como es el caso de la implementación en commonQT, en este caso el dialogo también usa el archivo ui 'timelinedetaildialog.ui', creado usando la herramienta designer de QT.

Los archivos con extensión ui, están dentro del folder ui. Los fuentes están dentro de la carpeta src. Tal como se puede apreciar en el listado abajo.

├── CMakeLists.txt
├── src
│   ├── main.cpp
│   ├── timelinedetaildialog.cpp
│   ├── timelinedetaildialog.h
│   ├── timelineframe.cpp
│   └── timelineframe.h
├── timelines.sqlite3
└── ui
    ├── timelinedetaildialog.ui
    └── timelineframe.ui

A propósito la versión de QT que estamos usando es la versión 5. El timelineApp versión commonQT usa QT versión 4.

Algunas notas sobre el código

Detallando algunos archivos, sera una explicación corta.

1. main.c, punto de entrada del timelineApp version QT, muestra el Frame o Formulario principal.
2. timelineframe.ui, es el diseño hecho en la herramienta designer de QT.
3. timelineframe.h, esta clase hereda del archivo UI.
4. timelineframe.cpp, implementa los métodos para mostrar la data, entre otras funcionalidades.
5. timelinedetaildialog.cpp, dialogo super sencillo, solo carga la data.
6. CMakeLists.txt, lo necesario para que el cmake pueda compilar el proyecto.
7. timelines.sqlite3, la base de datos, hay un script de creación en el archivo readme.

Comentarios acerca de la UI

Estamos usando la aproximación directa para usar el diseño del frame o formulario que hemos hecho con herramienta designer-qt.

Cabe notar que hubo que agregar en el xml que usamos en commonQT la propiedad 'objectName' dentro de la etiqueta widget. Para que pueda ser usado en qt5, aparte de ello hemos cambiado el nombre de algunos de los objetos con respecto a timeline-commonQTApp. Si hacen una diferencia entre el 'timelineframe.ui' y el 'timeline_main_form_widget.ui' podrán ver los cambios.

El código para descargar y compilar


https://disk.yandex.com/d/CkkJxeFKLOIddg

Mostrar el timeline-QT

Las imágenes del timelineAppQt son prácticamente las mismas que las del timelineAppCommonQT, vea las imágenes en el link respectivo.

Conclusión

Este desarrollo ha sido bastante interesante, nos permitió actualizar y mejorar nuestro anterior blogpost acerca del timeline-commonQTApp, el cual tal cual lo comparamos nos ofrece la misma funcionalidad que la versión QT.

Existe una librería de common lisp 'commonqt5', podría ser interesante probarla, pareciera que ya no usa la libreria smoke como dependencia.

Para poder portar el oneHandMenu de Gtk a QT, necesitamos primero configurar una maquina virtual que nos permita compilar el código. En un futuro esperamos poder contar con dicha maquina virtual y adaptar el oneHandMenu a QT, eso nos permitirá usar el oneHandMenu-QT en el teléfono Nokia N9.

Last change: 28.11.2023 10:47

blog comments powered by Disqus