tutorial how examples ejemplos creator code qt qml

how - ¿Para qué sirven los archivos ui.qml en Qt5(QML)?



qt examples code (1)

Por lo que puedo ver, los archivos .qml se pueden usar para definir la interfaz de usuario, que parece anular todo lo que está escrito en el archivo ui.qml. Entonces, ¿cuál es exactamente el uso del archivo ui.qml?

Estoy usando Qt5 con Qt Creator.


El archivo .ui.qml existe para ayudar a Qt Quick Designer a salir. Los archivos QML normales pueden contener expresiones de JavaScript, por ejemplo, pero es difícil para Qt Quick Designer trabajar con ellos. Por el contrario, QML simple no es tan difícil, y está más cerca del equivalente de los widgets de los archivos .ui , un documento que detalla un conjunto de elementos en una interfaz de usuario, no tanto la lógica detrás de ellos.

La función fue propuesta hace varios años en el blog :

El Widget Designer clásico se basa en la distinción entre forma declarativa y lógica imperativa. La forma declarativa es designable y se almacena en archivos .ui.

En Qml, es fácil mezclar el código declarativo y el código imperativo. Si agrega instrucciones imperativas (que afectan aspectos visuales) a sus archivos Qml, ya no son puramente declarativos y la representación visual en el editor visual se romperá. El editor visual necesita una forma de traducir la descripción visual a la descripción del texto. Para el código imperativo, esto no es posible en general y Qt Quick Designer ni siquiera lo intenta.

La documentación para Documentos QML dice:

Desde Qt 5.4, un documento también puede tener la extensión de archivo ".ui.qml". El motor QML maneja estos archivos como archivos .qml estándar e ignora la parte .ui de la extensión. Qt Creator maneja esos archivos como formularios de interfaz de usuario para Qt Quick Designer. Los archivos pueden contener solo un subconjunto del lenguaje QML definido por Qt Creator.

Qt Quick UI Forms :

Puede usar los asistentes de Qt Creator para crear formularios de UI que tengan la extensión de nombre de archivo .ui.qml. Los formularios de UI contienen un subconjunto puramente declarativo del lenguaje QML. Se recomienda editar los formularios en el modo Diseño. Sin embargo, exportar elementos como propiedades de alias es una función comercial única, y por lo tanto debe usar el modo Editar para hacerlo si está usando la versión de código abierto de Qt Creator. Qt Creator impone el uso de las características QML admitidas al mostrar mensajes de error.

Las siguientes características no son compatibles:

  • Bloques de JavaScript
  • Definiciones de funciones
  • Llamadas de función (excepto qsTr)
  • Otras vinculaciones que expresiones puras
  • Controladores de señal
  • Estados en otros elementos que no sean el elemento raíz
  • Elementos de raíz que no se derivan de QQuickItem o Item

Los siguientes tipos no son compatibles:

  • Comportamiento
  • Unión
  • Lona
  • Componente
  • Efecto Shader
  • Minutero
  • Transformar
  • Transición