이 페이지에서

속성 재정의

qmllint에서는 이 경고 범주를 ‘ [property-override] ’로 표기합니다.

멤버가 아무것도 재정의하지 않음

무슨 일이 발생했나요?

아무것도 재정의하지 않은 상태에서 속성을 override 로 표시했습니다. 현재 컴포넌트의 기본 유형에는 virtual 로 표시된 동일한 이름의 속성이 없습니다.

왜 문제가 될까요?

QML 엔진은 이러한 속성을 발견하면 런타임 오류를 발생시킵니다.

예시

import QtQuick

Item {
    component Base: Item { virtual property int myProperty; }
    Base {
        override property int myP: 42
    }
}

이 경고를 해결하려면 다음과 같이 하세요:

  • override 마커를 제거하십시오.
  • 속성 이름이 현재 컴포넌트의 기본 유형에 있는 virtual 또는 override 속성의 이름과 일치하는지 다시 한 번 확인하십시오.
import QtQuick

Item {
    component Base: Item { virtual property int myProperty; }
    Base {
        property int myP: 42 // solution 1: remove override
        override property int myProperty: 42 // solution 2: fix spelling
    }
}

멤버가 final 멤버를 가리고 있습니다

무슨 일이 발생했나요?

final로 표시된 속성을 가렸습니다.

왜 문제가 될까요?

속성은 오버라이딩 및 섀도잉을 방지하기 위해 final로 표시됩니다. QML 엔진은 섀도잉 속성을 발견하면 런타임 오류를 발생시킵니다.

예시

import QtQuick

Item {
    component Base: Item { final property int myFinal; }
    Base {
        property int myFinal: 42
    }
}

이 경고를 해결하려면 다음 중 하나를 수행할 수 있습니다:

  • 가려지는 속성이나 가리는 속성의 이름을 변경합니다.
  • final 마커를 virtual 또는 override 로 바꾸고, 오버라이딩되는 속성에 누락된 override 를 추가합니다.
import QtQuick

Item {
    // solution 1: rename the property
    component Base: Item { final property int myFinal; }
    Base {
        property int myFinal2: 42
    }

    // solution 2: replace the final marker and add override
    component Base2: Item { virtual property int myFinal; }
    Base2 {
        override property int myFinal: 42
    }
}

멤버가 final 멤버를 재정의함

무슨 일이 발생했나요?

final로 표시된 속성을 오버라이드했습니다.

왜 문제가 될까요?

final 로 표시된 속성은 재정의 및 가림(shadowing)을 방지합니다. QML 엔진은 재정의된 속성을 발견하면 런타임 오류를 발생시킵니다.

예시

import QtQuick

Item {
    component Base: Item { final property int myFinal; }
    Base {
        override property int myFinal: 42
    }
}

이 경고를 해결하려면 다음 중 하나를 수행하십시오:

  • 가려지는 속성이나 가리는 속성의 이름을 변경하고, override 표시를 제거합니다.
  • 오버라이드된 속성의 ` final ` 표시자를 ` virtual `로 대체합니다.
import QtQuick

Item {
    // solution 1: remove override and rename
    component Base: Item { final property int myFinal; }
    Base {
        property int myFinal2: 42
    }

    // solution 2: replace final marker with virtual
    component Base2: Item { virtual property int myFinal; }
    Base2 {
        override property int myFinal: 42
    }
}

멤버가 다른 멤버를 가림

무슨 일이 발생했나요?

` final ` 또는 ` override`을 사용하지 않고 ` virtual ` 또는 ` override ` 속성을 섀도잉했습니다.

왜 문제가 될까요?

virtual 속성을 가리는 속성에는 override 또는 final 마커가 필요합니다. QML 엔진은 이러한 속성을 발견하면 런타임 경고를 발생시킵니다.

예시

import QtQuick

Item {
    component Base: Item { virtual property int myProperty; }
    Base {
        property int myProperty: 42
    }
}

이 경고를 해결하려면 가리는 속성을 override 또는 final 로 지정하십시오.

import QtQuick

Item {
    component Base: Item { virtual property int myProperty; }
    Base {
        override property int myProperty: 42 // could also be final
    }
}

멤버가 비가상 멤버를 오버라이드함

무슨 일이 발생했나요?

virtual 또는 override 로 표시되지 않은 속성을 오버라이드했습니다.

왜 문제가 될까요?

재정의할 수 있는 속성은 virtual 또는 override 를 통해 선언해야 합니다. QML 엔진은 virtual 또는 override 마커가 없는 재정의된 속성을 발견하면 런타임 오류를 발생시킵니다.

예시

import QtQuick

Item {
    component Base: Item { property int myProperty; }
    Base {
        override property int myProperty: 42
    }
}

이 경고를 해결하려면 재정의된 속성의 이름을 변경하거나, 해당 속성을 virtual 또는 override 로 표시하십시오.

import QtQuick

Item {
    component Base: Item { virtual property int myProperty; }
    Base {
        override property int myProperty: 42
    }
}

기본 유형에 해당 속성이 이미 존재합니다

무슨 일이 발생했나요?

virtual, override 또는 final 을 사용하지 않고 속성을 가렸습니다.

왜 문제가 됩니까?

재정의할 수 있는 속성은 virtual, override 또는 을 통해 선언해야 합니다. QML 엔진은 런타임에 가림 속성을 발견하면 경고를 표시합니다.

예시

import QtQuick

Item {
    component Base: Item { property int myProperty; }
    Base {
        property int myProperty: 42
    }
}

이 경고를 해결하려면 섀도잉 속성이나 섀도잉된 속성의 이름을 변경하거나, 누락된 virtual, override 또는 final 마커를 추가하십시오.

import QtQuick

Item {
    // solution 1: rename one of the properties
    component Base: Item { property int myProperty; }
    Base {
        property int myProperty2: 42
    }

    // solution 2: add missing markers
    component Base2: Item { virtual property int myProperty; }
    Base2 {
        final property int myProperty: 42 // could also be override
    }
}

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