Portar app widget a qml en Qt 5.3 para Android
-
Hola, desde ya muchas gracias por cualquier ayuda o sugerencia que me puedan brindar. Les comento mi problema:
Queria portar una app desarrollada con Necessitas Qt para Android (widgets) al nuevo Qt 5.3, lamentablemente no puedo utilizar widget en Qt 5.3 (la app no se ejecuta correctamente) y la unica solucion que encontre a mi problema es desarrollar toda la interfaz en qml (despues de varios dias de prueba una de las funciones principales de mi app se pudo ejecutar correctamente bajo qml). Esta solucion no me convence porque la app tiene mas de 50000 lineas de codigo (funciona casi totalmente en symbian, android y blackberry 10).
La necesidad portar a Qt 5.3 radica principalmente en que la funcion del sistema operativo android a la que quiero acceder solo lo puedo hacer con qml (necesito acceder a una activity, broadcastReceiver, y service). Otra de las razones es que la calidad de la interfaz usando widget no es muy buena. La version desarrollada en Necessitas Qt funciona pero tiene algunos bugs debido a la dificultad de implementar la comunicacion entre c++ y el java de Android. Supuestamente la ultima version de Qt esta mejor integrada con Android, mi idea era pasar todo a Qt 5.3, corregir los bugs y sacar la app al mercado.El gran problema que tengo es que de qml no se nada, mi idea era comenzar con lo basico: prueba y error en qml. Mis consultas son las siguientes:
- Existe componentes visuales en qml iguales o similares a los que se pueden insertar en los UI (form)? necesito poder visualizar tablas de sqlite, treeViews, el resto de componentes son los mas basicos, texbox, checkbox, etc. La aplicacion es del tipo administrativa-comercial, es compleja en cuanto a la cantidad de componentes-funciones.
- Existe algun otro designer de qml aparte del que viene en qt? Aparentemente la version del designer para qml es muy limitada, quise abrir un .qml que solo tenia cuatro botones y ejecutaban algunas funciones implementadas en c++ y me aparecio el siguiente error: "This QML file contains features which are not supported by Qt Quick Designer"
El .qml lo modifique en forma textual para implementar las llamadas al objeto implementado en c++. La app de prueba funciona bien (el .qml accede al objeto, realiza las funciones y muestra los resultados), pero si tengo que desarrollar toda la interfaz grafica mediante codigo no termino nunca.
-
Hola, supongo que tenes razon, para la mayoria de las app el empleo de widget puede ser suficiente. Lamentablemente en mi app necesito enviar y recibir sms, esas funciones no se pueden implementar en forma nativa en Qt, solo se puede hacer a travez java y la comunicacion entre c++ y java es complicada (y manejar Servicios y Broadcast java a travez de c++ mucho mas).
Despues de varias semanas utilizando qml llegue a la conclusion de que portar mi app va a ser MUY dificil (el componente Treeview no existe en qml y la solucion que yo le encotre fue insertar un Treeview (widget) en qml, y esto no es facil, en la version 2.0 de qml es imposible o por lo menos yo no pude hacerlo, solo lo pude hacer en la version 1.1).
En estos momentos estoy luchando para poder insertar datos procedentes de bd sqlite (que manejo a travez de clases c++) en un Listview, en internet hay poca informacion (y la poca info que hay es sobre procedimientos y clases que no son compatibles con Qt 5.3).
Cuando solucione este ultimo problema recien podre empezar con la tarea de portar la app (tarea que va a ser muy larga considerando que voy a tener a adaptar todas las clases c++ para que se comuniquen con qml, tambien voy tener que aprender qml sobre la marcha, diseñar la nueva interfaz, etc, etc, etc).
En fin tengo para entretenerme un rato. Saludos.