python qgraphicsview 예제

뷰 좌표에 있는 소스 정사각형을 장면에서 페인팅 장치 좌표에 있는 대상으로 렌더링합니다. 이 기능은 QImage(예: 스크린샷 촬영)와 같은 페인트 장치에 뷰의 내용을 캡처하거나 QPrinter로 인쇄하는 데 유용합니다. 예: 변환된 뷰를 사용하여 항목과의 상호 간을 단순화하기 위해 QGraphicsView는 mapTo를 제공합니다. 그리고 지도에서 … 장면과 뷰 좌표 사이를 변환할 수 있는 함수입니다. 예를 들어 mapToScene()을 호출하여 뷰 좌표를 부동 점 장면 좌표에 매핑하거나 부동 점 장면 좌표에서 맵으로 mapFromScene() 하여 좌표를 볼 수 있습니다. 이 특정 한 경우, 우리의 첫 번째 예제 응용 프로그램은 생각할 수 있는 가장 어리석은 UI: QGraphicsView가 있는 빈 창. 여전히, 나는 디자이너를 사용하여 그것을했고, 여기에 소리처럼 사소한 파일입니다 : window.ui 당신은 마우스와 키보드를 사용하여 장면의 항목과 상호 작용할 수 있습니다. QGraphicsView는 마우스 및 주요 이벤트를 장면 이벤트(QGraphicsSceneEvent를 상속하는 이벤트)로 변환하고 시각화된 장면으로 전달합니다. 결국, 이벤트를 처리하고 반응하는 개별 항목입니다. 예를 들어, 선택 가능한 항목을 클릭하면 항목은 일반적으로 장면이 선택되었음을 알리고 선택 사각형을 표시하기 위해 다시 그려집니다. 동시성 항목은 마우스를 클릭하고 드래그하여 이동 항목을 이동하면 마우스가 이동하고 자체적으로 이동하는 항목입니다. 항목 상호 작용은 기본적으로 활성화되어 있으며 setInteractive()를 호출하여 항목을 전환할 수 있습니다.

장면을 시각화하려면 먼저 QGraphicsView 오브젝트를 생성하고 시각화할 장면의 주소를 QGraphicsView의 생성자에게 전달합니다. 또는 setScene()을 호출하여 나중에 장면을 설정할 수 있습니다. show()를 호출한 후 뷰는 기본적으로 장면의 중심으로 스크롤되고 이 시점에서 표시되는 모든 항목을 표시합니다. 예: 뷰 매트릭스의 배율을 조정하고 스크롤 막대를 스크롤하여 장면 사각형 사각형이 뷰포트 내부에 맞도록 합니다. 직사각형은 장면 정사각형 내부에 있어야 합니다. 그렇지 않으면 fitInView()는 전체 정사각형이 표시되도록 보장할 수 없습니다. . . . pos는 부동 점 좌표이고 스크롤 막대는 정수 좌표에서 작동하므로 중심은 근사치일 뿐입니다. 평소와 같이, 나는 PyQt 응용 프로그램에 대한 내 기본 템플릿으로 시작하고, 그래서 흥미로운 일을 할 수 있도록 메인 위젯의 __init__ 메서드에 코드의 비트를 추가합니다 (아직 채우기 및 애니메이션에 대해 많이 걱정하지 마세요, 아직): 이 우회의 세션 2에 오는 : 상호 작용 과 더 슬프게도 나는 당신에게 비디오의 최종 결과를 표시 할 수 없습니다, 그것은 캡처꽤 어렵다.