2017-01-31 2 views
2

FontLoader QML 구성 요소를 사용하여 응용 프로그램에 글꼴을 추가하고 싶습니다.Component.createComponent()를 사용하여 내장 된 QML 구성 요소를 동적으로로드 할 수 있습니다.

첫 번째 생각은 Repeater을 사용했지만 FontLoaderItem 파생 된 대표 만 지원합니다.

그렇다면 Component::createComponent(url) 함수를 사용하여 FontLoader QML 구성 요소를 동적으로 만들지 만 여기서는 url을 사용해야합니까? QT_INSTALL_DIR의 qml 파일에 url을 제공하지 않고도 내장 된 QML 구성 요소를 동적으로 만들 수 있습니까?

사이드 노트 : 은 내가 FontLoader 하위 클래스 경우 가능하다고 알고 있지만, 나는 가능하면 여분의 코드를 피하려고.

또한 Component::createQmlObject()을 사용하여 문자열에서 구성 요소를 만들 수도 있지만 실제로 그렇게하고 싶지는 않습니다.

답변

3

Repeater 대신 Instantiator을 사용하면 Items이 아니더라도 동적으로 개체를 만들 수 있습니다. 당신은 여전히 ​​불가피하고 싶었다 경우

, 당신은 Component을 사용할 수 있습니다

Component { 
    id: fontLoaderComponent 
    FontLoader {} 
} 
//... 
fontLoaderComponent.createObject(parent, {name : "Courier"}); //use it like this to create a new FontLoader 
+0

내가'Instantiator' 구성 요소를 인식하지 않았다. 정말 잘됐다! – Phat