Sintaxis
Esta categoría de advertencia se escribe [syntax] por qmllint.
No se admiten componentes anidados en línea
¿Qué ha ocurrido?
Ha definido un componente en línea dentro de otro componente en línea.
¿Por qué es malo?
El lenguaje QML no permite componentes en línea anidados. Defina siempre los componentes en línea dentro del elemento raíz del archivo QML.
Ejemplo
import QtQuick
Item {
component Correct: Item {
component Evil: Item { ... }
...
}
}Para corregir esta advertencia, mueva todos los componentes al elemento raíz del archivo QML.
import QtQuick
Item {
component NotEvilAnymore: Item { ... }
component Correct: Item {
...
}
}La declaración de componentes en línea debe ir seguida de un typename
¿Qué ha ocurrido?
Ha definido un componente en línea con un tipo base no válido.
¿Por qué es malo?
Los componentes en línea necesitan un tipo base del que heredar.
Ejemplo
En este caso, someProperty no es un nombre de tipo válido, ya que es un nombre de propiedad. Para corregir esta advertencia, utilice un tipo válido como tipo base del componente:
import QtQuick
Item {
property Item someProperty
component InlineComponent: Item { ... }
}Expresión de alias no válida: se necesita un inicializador
¿Qué ha ocurrido?
Ha definido un alias de propiedad sin su propiedad de alias.
¿Por qué es malo?
Las propiedades alias siempre necesitan tener su propiedad alias o id en su definición.
Ejemplo
Para corregir esta advertencia, sustituya el alias por una propiedad normal o añada la propiedad alias que falta:
import QtQuick Item { id: root property int someProperty property alias withAliasedProperty: root.someProperty }
Expresión de alias no válida: sólo los ids y las expresiones de miembros de campo pueden tener alias
¿Qué ha ocurrido?
Ha definido un alias de propiedad que tiene como alias una expresión que no es un ID o una expresión de miembro de campo.
Una expresión de miembro de campo es una expresión de la forma someId.someProperty.
¿Por qué es malo?
Las propiedades alias siempre necesitan tener su propiedad alias en su definición, y no pueden enlazarse a otras expresiones que no sean IDs y expresiones miembro de campo.
Ejemplo
Para corregir esta advertencia, sustituya el alias por una propiedad normal o vincúlelo a una expresión de Id o de miembro de campo:
import QtQuick Item { id: root property int p property int someProperty: p + 1 property alias alternative: root.p }
Id debe ir seguido de un identificador
¿Qué ha ocurrido?
Ha definido un id sin valor.
¿Por qué es malo?
El lenguaje QML no permite ids vacíos.
Ejemplo
import QtQuick Item { id:; }
Para corregir esta advertencia, vincule el id a un nombre válido:
import QtQuick Item { id: root; }
Fallo al analizar el id
¿Qué ha ocurrido?
Has vinculado un id a una expresión que no es un nombre.
¿Por qué es malo?
El lenguaje QML sólo permite nombres como ligaduras a ids; no se pueden utilizar expresiones más complejas.
Ejemplo
import QtQuick Item { property int a property int b function f() { if (true) return a return b } id: f() }
Para corregir esta advertencia, vincule el id a un nombre válido o declare una propiedad y establezca un vínculo:
import QtQuick Item { property int a property int b function f() { if (true) return a return b } id: someItem // it would be confusing to call it `f` like the function property int alternative: f() }
Declaración de un objeto que no es un objeto QML como miembro de una lista
¿Qué ha ocurrido?
Ha añadido una expresión que no es un objeto a una lista de objetos.
¿Por qué es malo?
El lenguaje QML sólo permite objetos en listas de objetos.
Ejemplo
Para solucionar este problema, utilice un tipo de objeto válido o elimine el elemento de la lista:
Los Enums declarados dentro de componentes inline son ignorados
¿Qué ha ocurrido?
Ha definido una enum dentro de un componente en línea.
¿Por qué es malo?
El lenguaje QML sólo permite definiciones de enum dentro del elemento raíz del archivo QML. Las enumeraciones declaradas dentro de un componente en línea son inutilizables, incluso dentro del componente en línea. Lo mismo se aplica a los enums declarados dentro de objetos QML no raíz.
Ejemplo
Para solucionar esta advertencia, mueva la declaración de enum al elemento raíz del archivo QML:
Unknown argument to pragma
¿Qué ha ocurrido?
Ha especificado un argumento no válido para un pragma.
¿Por qué es malo?
El pragma no tendrá efecto.
Ejemplo
pragma ComponentBehavior: Buond
import QtQuick
Item {
}Puede corregir esta advertencia eliminando el pragma o corrigiendo un posible error tipográfico:
pragma ComponentBehavior: Bound
import QtQuick
Item {
}© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.