2017-09-05 5 views
2

Column에 버튼 그룹을 가지고 있는데 autoExclusive : true으로 설정했습니다. 이제는 단 하나의 버튼 만 예상대로 검사 할 수 있습니다. 그러나 이미 체크 된 버튼을 클릭하면 체크 된 상태를 비활성화하는 방법은 무엇입니까? 다음은 코드입니다.QML에있는 버튼의 체크 된 속성을 설정하십시오.

Column { 
    id: column 

    Button { 
     checked: true 
     text: qsTr("button 1") 
     autoExclusive : true 
     checkable : true 
     background: Rectangle { 
      color:checked ? "red" : "white" 
     } 
    } 

    Button { 
     checked: true 
     text: qsTr("button 2") 
     autoExclusive : true 
     checkable : true 
     background: Rectangle { 
      color:checked ? "red" : "white" 
     } 
    } 

    Button { 
     checked: true 
     text: qsTr("button 3") 
     autoExclusive : true 
     checkable : true 
     background: Rectangle { 
      color:checked ? "red" : "white" 
     } 
    } 
} 

답변

0

ButtonGroup를 사용하여이 작업을 수행 할 수있는 방법이있다.

0

나는 그것이 작동 할 것으로 생각됩니다. btnGrp.checkedButton에 액세스하여

Column { 
    id: column 

    Button { 
     checked: true 
     text: qsTr("button 1") 
     ButtonGroup.group: btnGrp //assign buttongroup 
     checkable : true 
     background: Rectangle { 
      color:checked ? "red" : "white" 
     } 
    } 

    Button { 
     checked: true 
     text: qsTr("button 2") 
     ButtonGroup.group: btnGrp //assign buttongroup 
     checkable : true 
     background: Rectangle { 
      color:checked ? "red" : "white" 
     } 
    } 

    Button { 
     checked: true 
     text: qsTr("button 3") 
     ButtonGroup.group: btnGrp //assign buttongroup 
     checkable : true 
     background: Rectangle { 
      color:checked ? "red" : "white" 
     } 
    } 
} 

ButtonGroup { 
    id:btnGroup 
} 

이제 btnGrp.buttons을 반복 true 또는 false로 버튼 상태를 확인하고도 수를 체크 얻을 수있는 버튼 :

Item { 
    id: column 

    Button { 
     id: btn1 
     checked: true 
     text: qsTr("button 1") 
     onClicked: 
     { 
      if (checked) 
      { 
       Console.log("Checked") 
       checked = false 
      } 
      else 
      { 
       Console.log("disabled") 
       checked = true 
      } 
     } 
    } 
} 
+0

작동하지 않을 것이라고 생각합니다. 매번 체크 된 속성을 false로 설정하면 작동하지 않습니다 !!! – pra7

+0

예 알아 두었지만 checkd 상태를 비활성화하는 방법을 보여주었습니다 :)) –

+0

코드가 업데이트되어 작동하면 시도해 볼 수 있습니다. –