이 페이지에서

Bars3DNode QML Type

3D 막대 그래프 노드. 더 보기...

Import Statement: import QtGraphs
Inherits:

GraphsNode

속성

신호

방법

상세 설명

이 유형을 사용하면 개발자가 Qt Quick 를 사용하여 막대 그래프 노드를 3D로 렌더링할 수 있습니다.

이 유형을 사용하려면 Qt Graphs 모듈을 임포트해야 합니다:

import QtGraphs

그런 다음 qml 파일에서 Bars3DNode를 사용할 수 있습니다:

import QtQuick
import QtGraphs

View3D {
    width: 640
    height: 480

    Bars3DNode {
        width: parent.width
        height: parent.height

        Bar3DSeries {
            itemLabelFormat: "@colLabel, @rowLabel: @valueLabel"

            ItemModelBarDataProxy {
                itemModel: dataModel
                // Mapping model roles to bar series rows, columns, and values.
                rowRole: "year"
                columnRole: "city"
                valueRole: "expenses"
            }
        }
    }

    ListModel {
        id: dataModel
        ListElement{ year: "2022"; city: "Oulu";     expenses: "4200"; }
        ListElement{ year: "2022"; city: "Rauma";    expenses: "2100"; }
        ListElement{ year: "2022"; city: "Helsinki"; expenses: "7040"; }
        ListElement{ year: "2022"; city: "Tampere";  expenses: "4330"; }
        ListElement{ year: "2023"; city: "Oulu";     expenses: "3960"; }
        ListElement{ year: "2023"; city: "Rauma";    expenses: "1990"; }
        ListElement{ year: "2023"; city: "Helsinki"; expenses: "7230"; }
        ListElement{ year: "2023"; city: "Tampere";  expenses: "4650"; }
    }
}

Bar3DSeries, ItemModelBarDataProxy, Scatter3DNode, Surface3DNode, 및 Qt Graphs 3D용 C++ 클래스를참조하세요 .

프로퍼티 문서

aspectRatio : real

가로 평면에서 가장 긴 축과 y축 사이의 그래프 배율 비율입니다. 기본값은 2.0 입니다.

참고: Bars3D 에는 영향을 미치지 않습니다.

horizontalAspectRatio참조하세요 .

barSeriesMargin : size

X 및 Z 차원의 계열 열 사이의 여백입니다. 기본적으로 (0.0, 0.0) 로 사전 설정되어 있습니다. 합리적인 값은 [0,1) 범위입니다.

barSpacing : size

X 및 Z 치수의 막대 간격.

기본적으로 (1.0, 1.0) 로 사전 설정됩니다. 간격은 barSpacingRelative 속성의 영향을 받습니다.

barSpacingRelative : bool

간격이 절대적인지 막대 두께에 상대적인지 여부.

true 값이 0.0 인 경우 막대가 좌우로 배치됨을 의미하며, 1.0 는 막대 사이에 막대 한 개 두께만큼의 공간이 남는다는 의미입니다. true 로 사전 설정합니다.

barThickness : real

X와 Z 치수 사이의 막대 두께 비율입니다. 1.0 값은 막대가 너비만큼 깊다는 것을 의미하며, 0.5 값은 너비보다 두 배 깊다는 것을 의미합니다.

columnAxis : Category3DAxis

활성 열 축입니다.

축을 지정하지 않으면 레이블이 없는 임시 기본 축이 생성됩니다. 이 임시 축은 다른 축이 명시적으로 같은 방향으로 설정되어 있으면 파괴됩니다.

customItemList : list<Custom3DItem>

그래프에 추가된 Custom3DItem 항목 목록입니다. 그래프는 추가된 항목의 소유권을 갖습니다.

floorLevel : real

Y축 데이터 좌표의 막대 그래프에 대한 바닥 레벨입니다.

실제 바닥 레벨은 Y축의 최소값과 최대값에 의해 제한됩니다. 기본값은 0입니다.

gridLineType : Graphs3D.GridLineType

격자선 유형이 Graphs3D.GridLineType.Shader 또는 Graphs3D.GridLineType.Geometry 인지 여부를 정의합니다.

이 값은 모든 격자선에 영향을 줍니다.

Graphs3D.GridLineType도 참조하세요 .

horizontalAspectRatio : real

X축과 Z축 사이의 그래프 배율 비율입니다. 0.0 값은 축 범위에 따른 자동 배율을 나타냅니다. 기본값은 0.0 입니다.

참고: barThicknessbarSpacing 속성을 통해 가로 평면에서 배율을 처리하는 Bars3DNode 에는 영향을 미치지 않습니다. 극좌표 그래프도 이 속성을 무시합니다.

aspectRatio, polar, Bars3DNode::barThickness, Bars3DNode::barSpacing도 참조 하세요.

labelMargin : real

이 속성은 축 레이블 배치의 여백을 지정합니다.

음수 값은 레이블을 플롯 영역 안쪽에 배치하고 양수 값은 플롯 영역 바깥쪽에 배치합니다. 값이 음수이면 레이블 자동 회전이 비활성화됩니다. 기본값은 0.1

QAbstract3DAxis::labelAutoAngle참조하세요 .

locale : locale

다양한 숫자 레이블 서식을 지정하는 데 사용되는 로캘을 설정합니다. 기본값은 "C" 로캘입니다.

Value3DAxis::labelFormat참조하세요 .

margin : real

플로팅 가능한 그래프 영역의 가장자리와 그래프 배경의 가장자리 사이에 남은 공간에 사용되는 절대값입니다.

여백 값이 음수인 경우 여백은 자동으로 결정되며 계열의 항목 크기 및 그래프 유형에 따라 달라질 수 있습니다. 그래프 가로 세로 비율이 기본값에서 변경되지 않은 경우 이 값은 Y축 범위의 일부분으로 해석됩니다. 기본값은 -1.0 입니다.

참고: 분산형 그래프의 여백을 자동으로 결정된 여백보다 작게 설정하면 그래프 가장자리에 있는 분산형 항목이 그래프 배경과 겹칠 수 있습니다.

참고: 분산형 및 표면 그래프에서 여백이 축 레이블 크기에 비해 작은 경우 축의 가장자리 레이블 위치가 인접 축의 가장자리 레이블과 겹치지 않도록 조정됩니다.

multiSeriesUniform : bool

여러 계열이 표시되는 경우에도 단일 계열 막대로 비율을 설정하여 막대 배율을 조정할지 여부를 정의합니다. true 로 설정하면 bar spacing 이 X축에만 올바르게 적용됩니다. 기본값은 false 으로 설정되어 있습니다.

optimizationHint : Graphs3D.OptimizationHint

렌더링 최적화를 위해 기본 모드 또는 레거시 모드를 사용할지 여부를 지정합니다.

기본 모드는 인스턴스 렌더링을 사용하며 대부분의 시스템에서 최상의 성능으로 전체 기능 세트를 제공합니다. 정적 모드는 그래프 렌더링을 최적화하며 변경되지 않는 대규모 데이터 세트에 이상적입니다. 동적 데이터 변경 및 항목 회전 시 속도가 느려집니다. 선택이 최적화되지 않으므로 대규모 데이터 세트에 정적 모드를 사용하는 것은 바람직하지 않습니다. 레거시 모드는 인스턴스화 없이 그래프의 모든 항목을 개별적으로 렌더링합니다. 기본 모드가 작동하지 않는 경우, 즉 대상 시스템이 인스턴싱을 지원하지 않는 경우에만 사용해야 합니다. 기본값은 Default 입니다.

참고: 일부 환경에서는 모든 항목이 단일 그리기 호출을 사용하여 렌더링되고 그래픽 드라이버마다 호출당 최대 버텍스 수를 다르게 지원하기 때문에 정적 최적화를 사용하는 큰 그래프가 렌더링되지 않을 수 있습니다. 이는 주로 32비트 및 OpenGL ES2 플랫폼에서 발생하는 문제입니다. 이 문제를 해결하려면 버텍스 수가 적은 아이템 메쉬를 선택하거나 포인트 메쉬를 사용하세요.

Abstract3DSeries::meshGraphs3D.OptimizationHint참조하세요 .

polar : bool

true 인 경우 가로축이 극축으로 변경됩니다. X축은 각도 축이 되고 Z축은 방사형 축이 됩니다. 막대 그래프에는 극좌표 모드를 사용할 수 없습니다.

기본값은 false 입니다.

radialLabelOffset참조하세요 .

primarySeries : Bar3DSeries

그래프의 기본 계열입니다. 축에 레이블이 명시적으로 설정되어 있지 않은 경우 행 및 열 축 레이블을 결정하는 데 사용됩니다.

지정된 계열이 아직 그래프에 추가되지 않은 경우, 주 계열로 설정하면 암시적으로 그래프에 추가됩니다.

기본 계열 자체가 그래프에서 제거되면 이 속성은 기본값으로 재설정됩니다.

계열이 null인 경우 이 속성은 기본값으로 재설정됩니다. 기본값은 처음 추가된 계열이며, 그래프에 계열이 추가되지 않은 경우 0이 됩니다.

queriedGraphPosition : vector3d [read-only]

이 읽기 전용 속성에는 Scene3D::graphPositionQuery 을 사용하여 쿼리한 각 축의 최신 그래프 위치 값이 포함됩니다. 값은 [-1, 1] 범위로 정규화됩니다. 쿼리된 위치가 그래프 범위를 벗어난 경우 값은 실제 위치를 반영하지 않고 대신 [-1, 1] 범위 밖의 정의되지 않은 위치가 됩니다. 쿼리가 수행될 때까지 값은 정의되지 않은 상태로 유지됩니다.

특정 화면 위치와 일치하는 하나의 정확한 3D 좌표는 없으므로 일관성을 유지하기 위해 쿼리는 항상 그래프를 둘러싼 보이지 않는 상자의 안쪽 면을 기준으로 수행됩니다.

참고: 막대 그래프는 그래프 바닥 수준에서만 그래프 위치를 쿼리할 수 있으므로 막대 그래프의 경우 y값은 항상 0이며 그래프의 바닥이 포함된 화면 위치에서만 유효한 쿼리를 수행할 수 있습니다.

Scene3D::graphPositionQuery참조하세요 .

radialLabelOffset : real

이 속성은 방사형 극축의 축 레이블에 대한 정규화된 수평 오프셋을 지정합니다. 0.0 값은 레이블이 0각 각축 격자선 옆에 그려져야 함을 나타냅니다. 1.0 값은 레이블이 그래프 배경 가장자리의 일반적인 위치에 그려져야 함을 나타냅니다. 극좌표 속성 값이 false 인 경우 이 속성은 무시됩니다. 기본값은 1.0 입니다.

polar참조하세요 .

rowAxis : Category3DAxis

활성 행 축입니다.

축을 지정하지 않으면 레이블이 없는 임시 기본 축이 생성됩니다. 이 임시 축은 다른 축이 명시적으로 같은 방향으로 설정되어 있으면 파괴됩니다.

selectedElement : Graphs3D.ElementType [read-only]

그래프에서 선택한 요소입니다.

이 속성은 선택한 요소 유형을 쿼리하는 데 사용할 수 있습니다. 이 유형은 그래프에서 새 선택이 이루어지고 selectedElementChanged 신호가 전송될 때까지 유효합니다.

이 신호는 예를 들어 축 처리 예시에서 설명한 것처럼 사용자 지정 입력 처리를 구현하는 데 사용할 수 있습니다.

selectedLabelIndex(), selectedAxis(), selectedCustomItemIndex(), selectedCustomItem(), Bars3DNode::selectedSeries, Scatter3DNode::selectedSeries, Scene3D::selectionQueryPosition, 및 Graphs3D.ElementType참조하세요 .

selectedSeries : Bar3DSeries [read-only]

선택한 시리즈 또는 null. selectionModeSelectionMultiSeries 플래그가 설정된 경우, 이 속성은 선택한 막대를 소유한 시리즈를 보유합니다.

selectionMode : Graphs3D.SelectionMode

그래프의 활성 선택 모드입니다. graphs3d.selectionflag 열거형 값 중 하나입니다.

seriesList : list<Bar3DSeries> [default]

그래프의 계열입니다. 기본적으로 이 속성에는 빈 목록이 포함됩니다. 계열을 설정하려면 addSeries() 함수를 사용하거나 그래프의 하위 항목으로 정의합니다.

theme : GraphsTheme

그래프의 활성 테마입니다.

GraphsTheme도 참조하세요 .

valueAxis : ValueAxis3D

활성 값 축입니다.

축을 지정하지 않으면 레이블이 없고 자동으로 조정되는 범위가 있는 임시 기본 축이 생성됩니다. 이 임시 축은 다른 축이 명시적으로 같은 방향으로 설정되면 삭제됩니다.

신호 문서

barSeriesMarginChanged(size margin)

이 신호는 barSeriesMarginmargin 으로 변경될 때 발생합니다.

참고: 해당 핸들러는 onBarSeriesMarginChanged 입니다.

barSpacingChanged(size spacing)

이 신호는 barSpacingspacing 로 변경될 때 발생합니다.

참고: 해당 핸들러는 onBarSpacingChanged 입니다.

barSpacingRelativeChanged(bool relative)

이 신호는 barSpacingRelativerelative 로 변경될 때 발생합니다.

참고: 해당 핸들러는 onBarSpacingRelativeChanged 입니다.

barThicknessChanged(real thicknessRatio)

이 신호는 barThicknessthicknessRatio 로 변경될 때 발생합니다.

참고: 해당 핸들러는 onBarThicknessChanged 입니다.

columnAxisChanged(Category3DAxis axis)

이 신호는 columnAxisaxis 로 변경될 때 발생합니다.

참고: 해당 핸들러는 onColumnAxisChanged 입니다.

floorLevelChanged(real level)

이 신호는 floorLevellevel 로 변경될 때 발생합니다.

참고: 해당 핸들러는 onFloorLevelChanged 입니다.

multiSeriesUniformChanged(bool uniform)

이 신호는 multiSeriesUniformuniform 으로 변경될 때 발생합니다.

참고: 해당 핸들러는 onMultiSeriesUniformChanged 입니다.

primarySeriesChanged(Bar3DSeries series)

이 신호는 primarySeriesseries 로 변경될 때 발생합니다.

참고: 해당 핸들러는 onPrimarySeriesChanged 입니다.

rowAxisChanged(Category3DAxis axis)

이 신호는 rowAxisaxis 로 변경될 때 발생합니다.

참고: 해당 핸들러는 onRowAxisChanged 입니다.

selectedSeriesChanged(Bar3DSeries series)

이 신호는 selectedSeriesseries 로 변경될 때 발생합니다.

참고: 해당 핸들러는 onSelectedSeriesChanged 입니다.

valueAxisChanged(ValueAxis3D axis)

이 신호는 valueAxisaxis 로 변경될 때 발생합니다.

참고: 해당 핸들러는 onValueAxisChanged 입니다.

메서드 문서

qsizetype addCustomItem(Custom3DItem item)

그래프에 Custom3DItem item 을 추가합니다. 그래프가 추가된 항목의 소유권을 갖습니다.

추가에 성공하면 추가된 항목의 인덱스를 반환하고, null 항목을 추가하려고 하면 -1을, 이미 추가된 항목을 추가하려고 하면 해당 항목의 인덱스를 반환합니다.

removeCustomItems(), removeCustomItem() 및 removeCustomItemAt()도 참조하세요 .

void addSeries(Bar3DSeries series)

그래프에 series 을 추가합니다. 그래프에는 여러 계열이 포함될 수 있지만 축은 한 세트만 있으므로 시각화된 데이터가 의미가 있으려면 모든 계열의 행과 열이 일치해야 합니다. 그래프에 표시되는 계열이 여러 개인 경우, 축에 라벨이 명시적으로 설정되어 있지 않은 경우에는 처음 추가된 계열만 축에 행 또는 열 라벨을 생성합니다. 새로 추가된 계열에 선택된 막대가 지정되어 있는 경우 해당 막대가 강조 표시되고 기존 선택 항목은 모두 지워집니다. 추가된 시리즈는 하나만 활성 선택 항목을 가질 수 있습니다.

GraphsNode::hasSeries()도 참조하세요 .

void clearSelection()

첨부된 모든 시리즈에서 선택을 지웁니다.

void doPicking(QPoint point)

그래프의 요소에 point 의 뷰 좌표를 사용하여 피킹을 수행하여 첫 번째 항목을 선택합니다. 기본 입력 처리는 onTapped 이벤트를 수신하면 이 작업을 수행합니다.

selectedElement참조하세요 .

void doRayPicking(QVector3D origin, QVector3D direction)

origin 에서 시작하여 direction 에서 그래프 요소의 첫 번째 항목을 선택하여 피킹을 수행합니다.

selectedElement도 참조하세요 .

bool hasSeries(Abstract3DSeries series)

series 가 그래프에 이미 추가되었는지 여부를 반환합니다.

void insertSeries(int index, Bar3DSeries series)

시리즈 목록의 index 위치에 series 을 삽입합니다. series 이 이미 목록에 추가된 경우 새 index 으로 이동됩니다.

참고: 시리즈를 이전 색인 뒤에 있는 새로운 index 으로 이동하는 경우 목록에서 새 위치는 해당 시리즈가 여전히 이전 색인에 있는 것처럼 계산되므로 최종 색인은 실제로 1씩 줄어든 index 이 됩니다.

GraphsNode::hasSeries()도 참조하세요 .

void releaseCustomItem(Custom3DItem item)

item 의 소유권을 되찾고 그래프에서 item 을 제거합니다.

참고: 동일한 항목을 그래프에 다시 추가하는 경우 텍스처 파일을 다시 설정해야 합니다.

Custom3DItem::textureFile참조하세요 .

void removeCustomItem(Custom3DItem item)

사용자 정의 item 를 제거합니다. 할당된 리소스를 삭제합니다.

void removeCustomItemAt(vector3d position)

position 에서 모든 사용자 지정 항목을 제거합니다. 해당 항목에 할당된 리소스를 삭제합니다.

void removeCustomItems()

모든 사용자 지정 항목을 제거합니다. 해당 항목에 할당된 리소스를 삭제합니다.

void removeSeries(Bar3DSeries series)

그래프에서 series 을 제거합니다.

GraphsNode::hasSeries()도 참조하세요 .

Abstract3DAxis selectedAxis()

모든 레이블 유형으로 selectedElementChanged 신호를 수신한 후 선택한 축을 가져오는 데 사용할 수 있습니다. 선택은 다음 selectedElementChanged 신호까지 유효합니다.

선택한 축을 반환하거나 null을 반환합니다.

selectedElement참조하세요 .

Custom3DItem selectedCustomItem()

ElementType.CustomItem 유형으로 selectedElementChanged 신호를 수신한 후 선택한 사용자 지정 항목을 가져오는 데 사용할 수 있습니다. 항목의 소유권은 그래프에 남아 있습니다. 선택 항목은 다음 selectedElementChanged 신호까지 유효합니다.

선택한 사용자 정의 항목 또는 null을 반환합니다.

selectedElement참조하세요 .

qsizetype selectedCustomItemIndex()

ElementType.CustomItem 유형으로 selectedElementChanged 신호를 수신한 후 선택한 사용자 지정 항목의 인덱스를 쿼리하는 데 사용할 수 있습니다. 선택 항목은 다음 selectedElementChanged 신호까지 유효합니다.

선택한 사용자 정의 항목의 인덱스 또는 -1을 반환합니다.

selectedElement참조하세요 .

int selectedLabelIndex()

모든 라벨 유형으로 selectedElementChanged 신호를 수신한 후 선택한 라벨의 인덱스를 쿼리하는 데 사용할 수 있습니다. 선택은 다음 selectedElementChanged 신호까지 유효합니다.

선택한 레이블의 인덱스 또는 -1을 반환합니다.

selectedElement참조하세요 .

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.