2013-06-10 4 views
0

그래서 이 QGraphicsView이고, 은 ui입니다. 그 중 QGraphicSceneQGraphicsItem입니다. 이제 사용자가 각 장면에서 하나를 선택하도록 대기 상태로 만들고 싶습니다. 어떻게해야합니까?Qt는 사용자가 QGraphicsScene에서 항목을 선택할 때까지 기다립니다.

내가 좋아하는 것을 시도했다 :

while(scene->selectedItems().length()<1 || bordScene->selectedItems().length()<1) 
    ; 

을하지만 이것은 단지 프로그램이 무한 루프에 가서 사용자가 여전히 항목을 선택할 수 없습니다 원인이됩니다.

아마 아주 간단한 질문입니다하지만 난 당신이 슬롯을 만들고 그것을 모두 GraphicsScenes의 selectionChanged 신호를 연결할 수 있습니다

답변

2

간단한 해결책을 찾을 수 없습니다. 슬롯에서 선택한 항목을 확인할 수 있습니다. 슬롯은 연결된 GraphicsScenes 중 하나의 선택이 변경되었을 때만 트리거되기 때문에 무한 루프가없고 programm이 차단되지 않습니다.

+0

그러나 나는 여전히 사용자가 선택하도록 강요하지 않습니다. SI는 사용자가 선택을 할 때까지 아무 일도 일어나지 않기를 원합니다 : S 슬롯은 사용자가 무언가를 선택할 때만 트리거됩니다 : S –

+0

나는 당신을 모른다 그래서 나는 다른 일이 일어날 지 모른다. 그러나 사용자를 "강요"하는 방법이 있습니다. 예를 들어 모달 대화 상자에서 선택보기를 표시 할 수 있습니다. – WoJo

+1

@ Cédric Vandelaer '아무 일도 일어나지 않음'을 정의하십시오. 주 루프를'while '상태로 유지하면 아무 일도 일어나지 않으며 사용자는 요소를 선택할 수 없습니다. 그것은 분명히 당신이 원하는 것이 아닙니다. 그것은 당신의 프로그램입니다. 특정 GUI 요소가 활성화/비활성화, 표시/숨김 등을 결정해야합니다. –