2012-01-30 1 views
0

저는 학생 프로그래머이고 작업을 위해 GUI를 작성하는 데 Qt를 사용하고 있으며, 문제가 발생했습니다. 내 주요 인터페이스에서 데이터를 보유하고 QTreeWidget 있습니다. 또한이 GUI에는 편집, 복사 및 삭제 기능이 이미 시각적으로 연결된 버튼이 있습니다. 여러 항목을 선택하면 편집 버튼을 사용하지 못하게하고 싶습니다. 여기에 내가 문제가되는 곳이있다. 나는 최선의 방법이 (다시 한 번 나는 학생이다) 연결 성명의 일부 유형이 될 것이라고 생각하지만 나는 the Qt Documentation for this widget을 통해 찾고 있었는데이 바로 보이는 것 아무것도 찾을 수 없습니다. 나는 누군가가 이것에 대해 어떤 방향을 제시 할 수 있기를 더 경험했기를 바랬다. 나는이 신호를 사용할 수 있다면 나는/나는 그것을 관련된 시작 위치를 모르겠다 여기에 빈 치는거야 때문에 도움이 되거하시기 바랍니다QTreeWidget; QTree에서 여러 항목을 선택한 경우 ui 기능을 비활성화합니다.

void QTreeWidget::itemSelectionChanged() [signal] 

를 사용하는 경우는

궁금 해서요 여러 항목을 선택하고 있습니다.

답변

1

네,이 신호가 맞습니다. 예를 들어, 질문에 대한 슬롯의 간단한 구현은 다음과 같습니다.

void disableItems() { 

    QList<QTreeWidgetItem*> selection = treeWidget->selectedItems(); 
    if(selection.size() > 1) { 

     //disable the gui items here 

    } else { 

     //maybe reenable items otherwise 
    } 
} 
+0

굉장! 내가 그저 작가 블록을 쳤을 것 같아요. 전체 시간 동안 나는 신호를 찾는 것에 많은 관심을 기울였습니다. 나는 평가 기능을 만드는 것을 간과했습니다. 당신의 도움을 주셔서 감사합니다! –

1

QtDesigner에서만 그렇게 할 수 있다고 생각하지 않습니다. itemSelectionChanged 신호를 처리하기위한 자체 슬롯을 정의 할 수 있습니다. 해당 슬롯에서 QTreeWidget의 selectedItems 메소드를 사용하여 선택한 항목의 수를 확인하고이를 기반으로 버튼을 활성화/비활성화 할 수 있습니다.

관련 문제