En esta página

Falta propiedad

Esta categoría de advertencia se escribe [missing-property] por qmllint.

No se puede asignar a una propiedad por defecto inexistente

¿Qué ha ocurrido?

Has asignado un objeto a una propiedad por defecto inexistente.

¿Por qué es malo?

El motor QML no puede asignar este objeto en tiempo de ejecución.

Ejemplo

import QtQuick

Item {
    component MyType: QtObject { property Item myItem; }

    MyType {
        Item {}
    }
}

Para solucionar este problema, especifica la propiedad a la que quieres asignar el objeto o, si eres el autor del tipo, marca una propiedad como predeterminada:

import QtQuick

Item {
    component MyType: QtObject { property Item myItem; }

    MyType {
        myItem: Item {}
    }

    component AlternativeMyType: QtObject { default property Item myItem; }

    AlternativeMyType {
        Item {} // bound to myItem via default property
    }
}

La propiedad no existe

¿Qué ha ocurrido?

Has asignado una expresión a una propiedad que no existe.

¿Por qué es malo?

El motor QML no puede asignar esta expresión en tiempo de ejecución.

Ejemplo

import QtQuick

Item {
    property int myInt
    myItn: 42
}

Para corregir esta advertencia, elimine la vinculación o corrija un posible error tipográfico:

import QtQuick

Item {
    property int myInt
    myInt: 42
}

Member not found on type

¿Qué ha ocurrido?

Ha accedido a un miembro en una expresión de miembro de campo que las herramientas QML no pueden encontrar. Una expresión de miembro de campo es una expresión de la forma someId.someProperty.

Es posible que el miembro no exista en absoluto, por ejemplo, si ha cometido un error tipográfico. O puede existir en tiempo de ejecución (porque existe en un subtipo específico que siempre está presente), pero no en el tipo declarado estáticamente.

¿Por qué es malo?

Las herramientas de QML no pueden encontrar este miembro, lo que significa que las características como go-to-definition y autocompletar no funcionarán. En tiempo de ejecución, puede haber un error o puede obtener un resultado incorrecto si el miembro realmente no existe. No se producirá ningún error si el miembro existe realmente en tiempo de ejecución, aunque en ese caso puede haber un coste de rendimiento debido a las optimizaciones perdidas.

Ejemplo

La propiedad no existe realmente

import QtQuick

Item {
    id: self
    property int myInt
    property int myInt2: 1 + self.myItn
}

Para corregir esta advertencia, elimine el enlace o corrija un posible error tipográfico:

import QtQuick

Item {
    id: self
    property int myInt
    property int myInt2: 1 + self.myInt
}

La propiedad existe, pero el tipo no es lo suficientemente preciso

import QtQuick
import QtQuick.Controls.Basic

Item {
  component Message : Item {
    required property string sender
    required property string text
  }
  ListView {
    id: messageView
    delegate: Message {}
  }

  Button {
    text: "Reply to %1".arg(messageView.currentItem.sender) // not ok
  }
}

Para corregir esta advertencia, convierta el objeto del que lee al tipo más específico:

import QtQuick
import QtQuick.Controls.Basic

Item {
  component Message : Item {
    required property string sender
    required property string text
  }
  ListView {
    id: messageView
    delegate: Message {}
  }

  Button {
    text: "Reply to %1".arg((messageView.currentItem as Message).sender) // now ok
  }
}

En el ejemplo, el tipo declarado de la propiedad currentItem de messageView es Item, que no tiene la propiedad sender: sender sólo está definida en Message. Sin embargo, aquí sabemos que currentItem siempre contiene una Message, por lo que podemos convertir currentItem a Message utilizando una aserción de tipo.

© 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.