2014-06-17 6 views
0

QML에 항목 클래스를 가져 오는 방법이 있습니까? 나는 objectNameid 등을 알고 있지만 조금 이상하고 너무 편안하지 않습니다.QML에서 기본 클래스를 얻는 방법?

ComboBox { 
    id: comboBox 
} 
TextField { 
    id: textField 
} 

function getValue(item) { 
    switch(item.???) { //what property can I use here? 
     case 'ComboBox': 
      return item.model.get(item.currentIndex).value; 
     case 'TextField': 
      return item.text; 
    } 
} 

objectName를 사용하여 인터넷 모호한 과도한 수 있습니다 이상, 예를 들어, 기사의 많은에 설명 된대로 :

ComboBox { 
    id: comboBox 
    objectName: "ComboBox" 
} 
TextField { 
    id: textField 
    objectName: "ComboBox" /// oops!! 
} 

function getValue(item) { 
    switch(item.objectName) { 
     case 'ComboBox': 
      return item.model.get(item.currentIndex).value; 
     case 'TextField': 
      return item.text; 
    } 
} 
+0

이러한 이름은 구성 요소가 선언 된 파일의 이름 일 뿐이므로 구문 분석 후 이러한 종류의 정보가 지워질 가능성이 큽니다. ... – Kakadu

답변

1

아니, 이것은 단지 ++ C에서 수행 할 수있는이 내가해야 할 것입니다.

0

나는 또한 같은 문제에 갇혀있다. 다음 회신은 좋은 해결 방법이 될 수 있습니다 : https://stackoverflow.com/a/13928333/1994341.

즉 : 각 항목에 대해 "objectName"속성을 고유 한 이름으로 설정합니다. objectName은 QtObject의 유일한 속성이며 각 QML 항목에 상속됩니다.

내 말에 따르면 이것은 잘못되었지만 QML은 훌륭한 도구입니다.

+0

링크가 유일한 대답이므로 가능성이 있습니다. 삭제됨 – bummi

+0

더 좋습니까? :) – jaddawyn

+0

제가 판단 할 수있는 한, 예라고 말하고 싶습니다. – bummi

관련 문제