2013-01-16 10 views
2

포럼의 도움을 받아 "createObject()"함수 내에서 속성에 함수를 할당 한 일부 버튼을 동적으로 만들었습니다. 이제이 함수 내부에서 동적으로 생성되는 다른 항목을 참조하십시오. 클릭했을 때, 나는 변경하려는 각 동전/참고 생성 버튼 :QML - 동적으로 생성 된 2 개의 요소 사이에 삽입

property var money_back: { '50e': 0, 
          '20e': 0, 
          '10e': 0, 
          '5e': 0, 
          '2e': 0, 
          '1e': 0, 
          '50c': 0, 
          '20c': 0, 
          '10c': 0, 
          '5c': 0, 
          '2c': 0, 
          '1c': 0 }; 
Row{ 
    id:money_row 
    spacing: 5 

    Component.onCompleted: { 
     var button = Qt.createComponent("BubbleButton.qml"); 
     var selected = Qt.createComponent("ChangeText.qml"); 
     for (var prop in change_screen.money_back){ 
      selected.createObject(money_row,{ 
             "id": "selected_"+prop, 
             "selected": "0" 
            }); 
      button.createObject(money_row,{ 
              "id": "button_"+prop, 
              // for testing purposes I wanted to make at least the first button work.. of course i want something like 'selected_+prop.selected' 
              "action": [function(){ selected_50e.selected += 1; }], 
              //"ps": ps, 
              "img_id.source": prop+".png", 
              "img_id.align": "center", 
              "color": "transparent" 
             }); 
     } 
    } 

내가 결국하고 싶은 것은 다음과 같다 :

(의사) 코드는 현재 다음과 같이 보입니다 그 옆에있는 텍스트의 내용 .. 카운터처럼 몇 번이나 버튼을 클릭했는지.

신호가있는 길로가는 것보다 쉬운 방법이 있습니까?

이 시간 내 주셔서 감사하고 -m

답변

2

당신은 버튼 액션에 개체 인스턴스를 통과 사용하는 데 도움이 (복잡한 모양). 예를 들어 : 어쨌든

Component.onCompleted: { 
    ... 
    for (var prop in change_screen.money_back){ 
     var selectedObject = selected.createObject(...); 
     button.createObject(money_row,{..., 
             "action": [function(){ selectedObject.selected += 1; }], 
             ...}); 

, 나는 당신이 동적 객체의 같은 엄청난 금액을 만들 수 Repeater 요소를 사용하는 것이 좋습니다.