Pregunta

Yo sé que el uso de QML es bastante nuevo en QT y me preguntaba si debería diseñar mi aplicación utilizando QtDesigner o QML. Me va a utilizar un patrón MVC y mi principal preocupación si uso QML para la interfaz gráfica de usuario es que puede que no sea fácil de integrar dentro del reste de mi aplicación C ++.

No dude en dar su consejo personal, que sería de gran aprecio. Gracias!

¿Fue útil?

Solución

QML está destinado principalmente para plataformas móviles. Debido a su juventud y su preocupación por diversas convenciones de interfaz de plataforma, que carece de controles estándar como botones y cuadros combinados (pero ver el componentes del proyecto ). Si usted está en el móvil, o la interfaz de usuario requiere un estilo visual altamente personalizado, QML fuerza sea teniendo en cuenta la pena. Esté preparado para una gran cantidad de trabajo extra en el diseño de controles personalizados. La integración de QML y C ++ es todavía bastante difícil en mi opinión. Yo personalmente recomiendo el uso de QML sólo para aplicaciones más simples, sólo en plataformas móviles, y sólo con JavaScript. En las circunstancias adecuadas podría considerar escribir elementos QML personalizados en C ++.

API C ++ de Qt no va a desaparecer pronto. También está diseñado con el escritorio en la mente y va a hacer un mejor trabajo para cumplir con las expectativas del usuario en plataformas de escritorio. Si se encuentra en el escritorio, lo recomiendo pegarse a C ++ y diseñador. Incluso después de QML madure un poco, probablemente no será la solución adecuada para la mayoría de las aplicaciones de escritorio.

Actualizar

Parece que las cosas son que comienzan a cambiar . No he probado los nuevos componentes a mí mismo, sin embargo, y la documentación parece un poco escaso (o, al menos, fuera del camino), pero esto podría eventualmente eliminar la mayor barrera para el uso de QML en el escritorio. Queda por ver si esto va a obtener apoyo en el largo plazo, pero si usted está dispuesto a aceptar el riesgo de ser uno de los primeros, creo que QML ahora puede ser una opción viable para las aplicaciones de escritorio.

Otros consejos

Sería vale la pena probar un poco de QML a prueba si se adapta a sus necesidades.

Si usted está construyendo una interfaz de usuario altamente personalizado con interfaces dinámicas y animaciones continuación QML encaja el trabajo; si usted está construyendo una aplicación de escritorio tradicional, entonces es probable que desee seguir con la API de Qt C ++.

En lo que respecta a la integración entre QML y C ++, QML está diseñado para integrarse fácilmente con el código C ++, y muchas aplicaciones QML utilizar algún tipo de C ++ backend. Es sencillo para inyectar objetos C ++ en una interfaz QML, o elementos de QML personalizados de escritura en C ++. Echar un vistazo a http://doc.qt.io/archives/qt- 4,7 / qtbinding.html y http: //doc.qt.io/archives/qt-4.7/qml-extending-tutorial-index.html .

Una cosa perdida por las respuestas anteriores es que QML tiene la ventaja / desventaja añadida de JavaScript para la lógica de negocio (si es necesario). Estoy construyendo un (pequeño y mediano) la aplicación de tamaño para el escritorio y en este momento mi (2) usuarios alfa disfrutan. Estoy impresionado con la expresividad del marco y de la rapidez con que puedo conseguirlo y probado. Con todo me resulta más rápido que trabajar con un editor de RAD (diseñador) y me gusta tener JavaScript como un mensaje en mi interfaz de usuario cuando estoy haciendo cosas molestas como se cierne / validación etc ...

creo que es una cuestión de cuán cómodo se siente con el lenguaje. Si C ++ es el "ir a" lengua que es probable que favorece el diseñador. Si viene desde la Web (confesión, soy un ingeniero / MVC NET dev Java EE haciendo un montón de front-end) lo encontrará refrescante y rápido.

También permite una cierta capacidad de respuesta que los usuarios esperan en estos días. En general, yo le daría una gran ventaja. Darle una oportunidad - usted probablemente será más bien complacer y bastante molesto en el mismo período de tiempo. Todavía estoy enojado por un par de cosas (FileIO en particular), pero he estado disfrutando el lado interfaz gráfica de usuario de las cosas de una manera que raramente hacemos en el escritorio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top