Qt를 처음 사용했습니다. 그것은 qgraphicsitem의 여러 선택에 대한 기본값이 Ctrl 키를 누르는 것 같습니다. 하지만이 기능을 사용 중지 할 수 있습니까? 또는이 기능을 새로 고침 하시겠습니까?qgraphicsitem의 다중 선택을 사용 불가능하게하는 방법은 무엇입니까?
1
A
답변
2
이것은 항목의 플래그에 의해 제어됩니다. 특정 항목에 대한 선택을하지 않으려면, 당신은 completly에 관계없이 항목 플래그의 QGraphicsScene
에 대한 해제 선택 항목이 내가 QGraphicsScene::clearSelection
에 QGraphicsScene::selectionChanged
를 연결하는 것이 좋습니다하려면
item->setFlag(QGraphicsItem::ItemIsSelectable, false);
을한다.
- 서브 클래스 QGraphicsScene 및
QGraphicsScene::selectionChanged
- 확인
selectedItems
에 연결 슬롯을 만들기 - 주위에 QGraphicsItem에 대한 포인터
lastSelection
을 유지 : : 여러 선택을 비활성화하려면나는 다음과 같은 제안
- 비어 있습니다. 할 일 없음 (= 아무것도 선택하지 않음)
- cont
- 하지
lastSelection
하나 개의 항목을 포함합니다 (= 선택은 정말 변경하지 않은) 아무것도 할 것이 없습니다 : AINS 만lastSelection
(처음 선택 = 하나 개의 항목) 해당 항목에lastSelection
을 설정 - 이 두 항목이 포함되어 하나 개해야합니다
lastSelection
이되어야합니다. 선택 항목 (lastSelection->setSelected(false);
)에서 해당 항목을 제거하고lastSelection
을 나머지 항목으로 설정하십시오.
넌 슬롯 내부의 선택을 수정하는 동안 신호를 차단해야 (다른 아이템을 선택하기 = 그것에 선택 이동). 다중 선택을 해제 할
1
간단한 방법은 다음과 같습니다
QGraphicsItem
에서 자신의 Dirived 클래스를 만듭니다.과부하 보호
mousePressEvent
기능이ControlModifier
을 해제 :protected: void YourOwnQGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent) Q_DECL_OVERRIDE { if(mouseEvent->modifiers() & Qt::ControlModifier) { mouseEvent->ignore(); } else { QGraphicsItem::mousePressEvent(mouseEvent); //Do what you want... } }
관련 문제
- 1. 다중 선택을 데이터베이스에 유용하게 저장하는 방법은 무엇입니까?
- 2. Dojo dijit.Calendar로 미래 날짜를 사용 불가능하게하는 방법
- 3. 격자보기의 행을 사용 불가능하게하는 방법
- 4. 도우 즈 향상 표를 사용 불가능하게하는 방법은 무엇입니까?
- 5. 제어 문자의 쉘 차단을 사용 불가능하게하는 방법은 무엇입니까?
- 6. f.select에서 다중 선택을 구현하는 방법은 무엇입니까?
- 7. extJS 다중 선택을 만드는 방법은 무엇입니까?
- 8. QGraphicsItem의 화면 위치 찾기
- 9. dojo tabcontainer에서 단일 탭을 사용 불가능하게하는 방법
- 10. 레일스에서 독립적 인 테이블에 다중 선택을 구현하는 방법은 무엇입니까?
- 11. QGraphicsItem의 가리 키기 이벤트
- 12. 조건별로 다중 선택을 확인했습니다.
- 13. 다중 선택을 처리하는 Jquery
- 14. 다중 선택을 관리하기 위해 JTree 노드에 확인란을 추가하는 방법은 무엇입니까?
- 15. nhibernate를 사용하여 databse에서 다중 선택을 수행하는 방법은 무엇입니까?
- 16. 다중 선택을 사용하는 모델을 올바르게 구현하는 방법은 무엇입니까?
- 17. 신속하게 분할 된 컨트롤에서 다중 선택을 수행하는 방법은 무엇입니까?
- 18. 드롭 다운 (jquery mobile)에서 다중 선택을 처리하는 방법은 무엇입니까?
- 19. 하나의 쿼리에서 여러 개의 다중 선택을 통합하는 방법은 무엇입니까?
- 20. redux를 사용하여 react에서 다중 선택을 강조하는 방법은 무엇입니까?
- 21. JAVA GUI에 일괄 스크립트 다중 선택을 통합하는 방법은 무엇입니까?
- 22. 도메인 계층에서 UI의 열거 형 값을 사용 불가능하게하는 방법
- 23. 여러 플로우에 대한 다중 플로우 실행 프로그램을 정의하고 일부 플로우에 대한 연속 스냅 샷을 사용 불가능하게하는 방법은 무엇입니까?
- 24. QGraphicsObject와 QGraphicsItem의 페널티?
- 25. QGraphicsItem의 이벤트 필터
- 26. Qt에서 QGraphicsItem의 lower() 및 raise()를 수행하는 방법은 무엇입니까?
- 27. qgraphicsitem의 mouseevent 만 실행하는 방법은 무엇입니까? (qgraphicsview의 나머지 mouseevent 무시)
- 28. QGraphicsItem의 위치를 다른 QGraphicsItem에 의존하게 만드는 방법은 무엇입니까?
- 29. BizFormEditData.ascx의 UniGrid에서 행 선택을 활성화하는 방법은 무엇입니까?
- 30. xe : listView가 다중 선택을 방지합니다.
안녕하세요,하지만 난 여전히 일반 선택 능력을 유지하려면, 난 단지 ... – Nyaruko
내 편집 대답을 참조 여러 선택을 해제 할 . – dom0
답변 해 주셔서 감사합니다. – Nyaruko