범례 분리 및 연결
참고: 이 내용은 ‘위젯이 포함된 차트’ 갤러리 예제의 일부입니다.
기본적으로 차트는 차트가 포함된 그래픽 뷰 내에 범례를 그립니다. 경우에 따라 사용자는 범례를 다른 위치에 그리기를 원할 수 있습니다. 이를 가능하게 하기 위해 범례를 차트에서 분리할 수 있습니다. 분리한다는 것은 범례가 더 이상 차트의 가장자리에 고정되지 않으며, 차트가 범례의 레이아웃을 제어하지 않게 됨을 의미합니다. 대신, 범례의 기하학적 구조는 사용자가 제어하게 되어 범례의 위치와 크기를 자유롭게 조절할 수 있습니다. 범례는 차트 콘텐츠 위에 떠 있을 수도 있고, 심지어 다른 그래픽 씬에 그려질 수도 있습니다. 이 예제를 실행하여 범례의 동작을 테스트해 볼 수 있습니다.
이 예제에서는 막대 시리즈를 보여주며, 사용자가 상호 작용을 통해 막대 세트를 추가하거나 제거할 수 있도록 합니다. 막대 세트가 추가되거나 제거됨에 따라 범례는 시리즈의 변경 사항을 반영합니다. 범례의 고정 여부, 정렬 방식, 이동 및 크기 조정 기능은 ` QLegend`의 메서드를 사용하여 제어할 수 있습니다.
범례가 분리된 상태에서는 크기를 조정하고 위치를 자유롭게 지정할 수 있습니다. 범례의 대화형 기능이 활성화된 경우, 사용자가 범례를 자유롭게 드래그하고 크기를 조정할 수 있습니다. 사용자가 범례를 차트의 어느 한쪽 가장자리 밖으로 드래그하면, 범례는 자동으로 차트의 해당 가장자리에 다시 부착됩니다.


여기서는 범례를 표시하고 차트 하단에 정렬하도록 설정합니다.
m_chart->legend()->setVisible(true);
m_chart->legend()->setAlignment(Qt::AlignBottom);이 코드 조각은 차트에서 범례를 분리하는 방법을 보여줍니다.
legend->detachFromChart();여기서는 범례를 차트에 다시 연결합니다. 배경은 보이지 않게 설정됩니다.
legend->attachToChart();여기서는 범례가 분리되거나 연결될 때 발생되는 신호에 연결하여, 분리될 때는 배경을 켜고 연결될 때는 배경을 끕니다. 이렇게 하면 범례가 분리되었을 때 내부 항목들이 어떻게 배열되어 있는지 더 쉽게 확인할 수 있습니다.
connect(legend, &QLegend::attachedToChartChanged, [legend, this](bool attachedToChart) {
m_toggleAttachedButton->setChecked(attachedToChart);
legend->setBackgroundVisible(!attachedToChart);
m_geometrySettings->setDisabled(attachedToChart);
});이 예제는 마우스와 같은 포인팅 장치를 사용하여 사용자가 범례를 상호작용할 수 있도록 하는 방법을 보여줍니다.
legend->setInteractive(true);이 예제는 범례가 상호작용이 불가능한 경우 분리된 범례의 크기를 설정하는 방법을 보여줍니다. 새 값을 설정한 후 update를 호출하여 화면에 변경 사항을 표시합니다.
QRectF geom = m_chart->legend()->geometry();
if (qFuzzyCompare(geom.x(), m_legendPosX->value())
&& qFuzzyCompare(geom.y(), m_legendPosY->value())
&& qFuzzyCompare(geom.width(), m_legendWidth->value())
&& qFuzzyCompare(geom.height(), m_legendHeight->value()))
return;
m_chart->legend()->setGeometry(QRectF(m_legendPosX->value(),
m_legendPosY->value(),
m_legendWidth->value(),
m_legendHeight->value()));
m_chart->legend()->update();© 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.