qgraphicsview 예제

뷰 좌표에 있는 소스 정사각형을 장면에서 페인팅 장치 좌표에 있는 대상으로 렌더링합니다. 이 기능은 QImage(예: 스크린샷 촬영)와 같은 페인트 장치에 뷰의 내용을 캡처하거나 QPrinter로 인쇄하는 데 유용합니다. 예를 들어 전체 장면이 뷰에 표시되는 경우(예: 표시되는 스크롤 막대가 없음) 뷰의 맞춤에 따라 뷰에서 장면이 렌더링될 위치가 결정됩니다. 예를 들어 선형이 기본값인 Qt::AlignCenter인 경우 장면은 뷰의 가운데에 배치되고 선형이 있는 경우(Qt::AlignLeft | Qt::AlignTop) 장면이 뷰의 왼쪽 위 모서리에 렌더링됩니다. 일부 예제에서는 캔버스 항목과 함께 그래픽 효과를 사용하는 것을 보여 줍니다. 이 예제에서는 Qt를 사용 하 고 캔버스 프로그래밍의 기본 측면을 보여 줍니다. 장면을 시각화하려면 먼저 QGraphicsView 오브젝트를 생성하고 시각화할 장면의 주소를 QGraphicsView의 생성자에게 전달합니다. 또는 setScene()을 호출하여 나중에 장면을 설정할 수 있습니다. show()를 호출한 후 뷰는 기본적으로 장면의 중심으로 스크롤되고 이 시점에서 표시되는 모든 항목을 표시합니다. 예: 다음 예제에서는 하나의 항목(pixmap)만 있는 매우 간단한 장면이 있는데, 이 장면은 장면에 넣고 뷰에 표시됩니다. DragMode 플래그를 켜면 장면을 마우스로 패닝할 수 있으며, 축척 및 회전 기능을 사용하여 마우스의 스크롤로 크기를 조정하고 화살표 키로 회전할 수 있습니다.

이 예제는 그래픽 위젯 및 레이아웃의 사용을 보여 준다. QGraphicsView는 QPixmap에서 미리 렌더링된 콘텐츠를 캐시한 다음 뷰포트에 그려질 수 있습니다. 이러한 캐싱의 목적은 렌더링 속도가 느린 영역의 총 렌더링 시간을 단축하는 것입니다. 예를 들어 텍스처, 그라데이션 및 알파 혼합 배경은 렌더링 속도가 매우 느릴 수 있습니다. 특히 변환 된 보기와 함께. 캐시백 플래그를 사용하면 뷰의 배경을 캐싱할 수 있습니다. 예: 마우스와 키보드를 사용하여 장면의 항목과 상호 작용할 수 있습니다. QGraphicsView는 마우스 및 주요 이벤트를 장면 이벤트(QGraphicsSceneEvent를 상속하는 이벤트)로 변환하고 시각화된 장면으로 전달합니다. 결국, 이벤트를 처리하고 반응하는 개별 항목입니다. 예를 들어, 선택 가능한 항목을 클릭하면 항목은 일반적으로 장면이 선택되었음을 알리고 선택 사각형을 표시하기 위해 다시 그려집니다. 동시성 항목은 마우스를 클릭하고 드래그하여 이동 항목을 이동하면 마우스가 이동하고 자체적으로 이동하는 항목입니다. 항목 상호 작용은 기본적으로 활성화되어 있으며 setInteractive()를 호출하여 항목을 전환할 수 있습니다.

QGraphicsScene, QGraphicsScene, Qt, QGraphicsScene Qt5, QGraphicsScene 예제를 실행하려는 경우 이 예제를 실행하려면 표시될 뷰 인스턴스를 만들고 이미지 my_image.png를 포함하는 접두사/이미지가 포함된 리소스 파일을 만듭니다. 기본적으로 QGraphicsView는 뷰포트 위젯에 대한 일반 QWidget을 제공합니다. 뷰포트()를 호출하여 이 위젯에 액세스하거나 setViewport()를 호출하여 대체할 수 있습니다. OpenGL을 사용하여 렌더링하려면 setViewport(새 QGLWidget)를 호출하기만 하면 됩니다. QGraphicsView뷰는 뷰포트 위젯의 소유권을 받습니다. resizeEvent() ? 기본값은 MinimalViewportUpdate이며, 여기서 QGraphicsView는 내용이 변경될 때 뷰포트의 작은 영역으로 업데이트됩니다. 업-에이션을 할 수 있습니다. 이에 대한 설명은 C+++를 가지고 있으며, QGridLayout의 레이아웃을 이수할 수 있습니다. .

QGraphicsItem을 참조하십시오.