qgraphicsscene 예제

이 특정 한 경우, 우리의 첫 번째 예제 응용 프로그램은 생각할 수 있는 가장 어리석은 UI: QGraphicsView가 있는 빈 창. 여전히 디자이너를 사용하여 수행했으며, 여기에 들리는 것처럼 사소한 파일이 있습니다. 다음 예제에서는 하나의 항목(pixmap)만 있는 매우 간단한 장면이 있는데, 이 장면은 장면에 배치되어 뷰에 표시됩니다. DragMode 플래그를 켜면 장면을 마우스로 패닝할 수 있으며, 축척 및 회전 기능을 사용하여 마우스의 스크롤로 크기를 조정하고 화살표 키로 회전할 수 있습니다. 이 예제는 그래픽 위젯 및 레이아웃의 사용을 보여 준다. 이 예제에서는 Qt를 사용 하 고 캔버스 프로그래밍의 기본 측면을 보여 줍니다. 이 예제를 실행하려면 표시될 View 인스턴스를 만들고 my_image.png 이미지를 포함하는 접두사/이미지가 있는 리소스 파일을 만듭니다. QGraphicsScene, QGraphicsScene, Qt, QGraphicsScene Qt5, QGraphicsScene 예제 QGraphicsScene은 그룹 선택 작업에 대해 이 신호를 한 번만 방출합니다. 예를 들어 선택 영역을 설정하거나 QGraphicsItemGroup을 선택하거나 선택 취소하거나 장면에서 선택한 여러 항목이 포함된 상위 항목을 추가하거나 제거하는 경우 작업이 완료된 후 한 번만 선택변경()이 내보내지는데 각 항목)을 참조하십시오. 예를 들어 이 속성을 설정하는 것은 장면이 여러 뷰로 렌더링되는 경우 특히 유용할 수 있으며, 그 중 하나는 항상 모든 항목을 표시하는 개요 역할을 합니다.

항목이 많은 장면에서 이러한 뷰는 모든 항목을 표시할 수 있도록 높은 배율 계수를 사용합니다. 크기 조정으로 인해 작은 항목은 최종 렌더링된 장면에 만 크게 기여하지 않습니다. 이러한 항목을 그리지 않도록 하고 장면을 렌더링하는 데 필요한 시간을 줄이려면 음수가 아닌 값으로 setMinimumRenderSize()를 호출할 수 있습니다. 화가를 사용하여 장면에서 대상으로 소스 직사각형을 렌더링합니다. 이 기능은 QImage(예: 스크린샷 촬영)와 같은 페인트 장치에 장면의 내용을 캡처하거나 QPrinter로 인쇄하는 데 유용합니다. 예: QGraphicsScene이 가지고 있는 또 다른 책임은 QGraphicsView에서 이벤트를 전파하는 것입니다. 장면에 이벤트를 보내려면 QEvent를 상속하는 이벤트를 생성한 다음 QApplication::sendEvent()와 같은 사용하여 이벤트를 보냅니다. event()는 이벤트를 개별 항목에 디스패치할 책임이 있습니다. 일부 일반적인 이벤트는 편의 이벤트 처리기에 의해 처리됩니다. 예를 들어 키 프레스 이벤트는 keyPressEvent()에 의해 처리되고 마우스 프레스 이벤트는 mousePressEvent()에 의해 처리됩니다. 항목의 형상은 항목 좌표에 제공되며 해당 위치는 (0, 0)으로 초기화됩니다. 예를 들어 QRect(50, 50, 100, 100)가 추가되면 왼쪽 위 모서리는 항목의 좌표계의 원점을 기준으로(50, 50)가 됩니다.

QGraphicsScene은 장면에 추가되는 동안 ItemSceneChange 알림을 항목으로 보냅니다. 항목이 현재 장면에 속하지 않으면 하나의 알림만 전송됩니다. 이미 장면에 속하는 경우(즉, 이 장면으로 이동됨) QGraphicsScene은 항목이 이전 장면에서 제거될 때 추가 알림을 보냅니다. 장면에 타원 항목을 만들고 추가하고 항목 포인터를 반환합니다. 타원의 형상은 직사각형으로 정의되며 펜과 브러시는 펜과 브러시로 초기화됩니다. 배경에 대한 색상, 텍스처 또는 그라데이션을 정의하기만 하면 setBackgroundBrush()를 호출할 수 있습니다. 장면이 렌더링될 때 대상 뷰로 변환된 너비 또는 높이가 최소RenderSize()보다 작아지는 항목은 렌더링되지 않습니다. 항목이 렌더링되지 않고 자식 항목을 클립하면 렌더링되지 않습니다.

축소된 뷰에서 렌더링된 개체가 많은 장면의 렌더링 속도를 높이도록 이 값을 설정합니다.