QTreeView
은 QAbstractItemModel
하위 클래스로 채워 지므로 리프 노드를 사용자가 확인할 수 있습니다. 리프가 아닌 노드의 자손 리프 노드 중 적절한 서브 세트가 점검되면 해당 노드가 부분적으로 점검됩니다 (Qt::CheckStateRole
은 Qt::PartiallyChecked
임).QTreeView 부분 검사 노드를 클릭하면 노드를 선택 취소 할 수 있습니까?
현재 사용자가 부분 검사 노드를 클릭하면 검사 상태가 Qt::Checked
으로 변경됩니다. 대신 노드를 지우고 싶습니다 (Qt::Unchecked
). 이 동작을 사용자 정의하는 방법이 있습니까? QCheckBox
으로 제어하려면 QAbstractButton::nextCheckState()
을 무시하고 QTreeView
과 비슷한 항목을 찾을 수 없습니다.
'value'는'Qt :: PartiallyChecked'가 아니며'Qt :: Checked'입니다. 그것이 문제이다. – ecatmur
그래서'Qt :: Checked'를받을 때 해보십시오. 뭐가 문제 야? 필요한 경우, 데이터 (색인, 역할)를 사용하여 현재 상태에 액세스 할 수도 있습니다 – Trompa
마우스 클릭 (또는 스페이스 바 누르기)에서 호출 된'setData'와 다른 원인에서 구별되는'setData'를 구분하지 않습니다. 여기서'Qt :: Checked'는 원하는 값입니다. 더 좋은 방법이 있기를 바랍니다. (어떤 코드가'setData'를 호출합니까?) – ecatmur