Legenden ab- und anbringen
Hinweis: Dies ist Teil des Beispiels „Diagramme mit Widgets“ aus der Galerie.
Standardmäßig zeichnet das Diagramm die Legende innerhalb derselben Grafikansicht, in der sich das Diagramm befindet. In manchen Fällen möchte der Benutzer die Legende jedoch an einer anderen Stelle anzeigen. Um dies zu ermöglichen, kann die Legende vom Diagramm getrennt werden. Das Abtrennen bedeutet, dass die Legende nicht mehr an einem Rand des Diagramms fixiert ist und das Diagramm das Layout der Legende nicht mehr steuert. Stattdessen wird die Geometrie der Legende vom Benutzer gesteuert, wodurch die Position und Größe der Legende frei festgelegt werden können. Sie kann über dem Inhalt des Diagramms schweben oder sogar in einer anderen Grafikszene gezeichnet werden. Das Verhalten der Legende lässt sich durch Ausführen dieses Beispiels testen.
In diesem Beispiel zeigen wir eine Balkenreihe, bei der Balkensätze interaktiv hinzugefügt oder entfernt werden können. Die Legende spiegelt die Änderungen in der Reihe wider, wenn Balkensätze hinzugefügt und/oder entfernt werden. Die Anbindung der Legende, ihre Ausrichtung sowie die Möglichkeit, sie zu verschieben und ihre Größe anzupassen, lassen sich mithilfe von Methoden in „ QLegend “ steuern.
Wenn die Legende abgetrennt ist, kann ihre Größe geändert und ihre Position frei gewählt werden. Ist die interaktive Funktion der Legende aktiviert, kann der Benutzer die Legende frei verschieben und ihre Größe ändern. Zieht der Benutzer die Legende über den Rand des Diagramms hinaus, wird sie automatisch wieder an dieser Seite des Diagramms angeheftet.


Hier schalten wir die Legende ein und richten sie am unteren Rand des Diagramms aus.
m_chart->legend()->setVisible(true);
m_chart->legend()->setAlignment(Qt::AlignBottom);Dieser Codeausschnitt zeigt, wie man die Legende vom Diagramm löst.
legend->detachFromChart();Hier heften wir die Legende wieder an das Diagramm an. Der Hintergrund wird unsichtbar gemacht.
legend->attachToChart();Hier binden wir uns an das Signal, das beim Lösen oder Anheften der Legende ausgelöst wird, und schalten ihren Hintergrund beim Lösen ein und beim Anheften aus. Dadurch lässt sich leichter erkennen, wie die Elemente innerhalb der Legende angeordnet sind, wenn sie gelöst ist.
connect(legend, &QLegend::attachedToChartChanged, [legend, this](bool attachedToChart) {
m_toggleAttachedButton->setChecked(attachedToChart);
legend->setBackgroundVisible(!attachedToChart);
m_geometrySettings->setDisabled(attachedToChart);
});Hier wird gezeigt, wie die Legende für den Benutzer mithilfe eines Zeigegeräts wie einer Maus interaktiv gestaltet wird.
legend->setInteractive(true);Hier wird gezeigt, wie wir die Abmessungen der getrennten Legende festlegen, wenn diese nicht interaktiv ist. Nach dem Festlegen der neuen Werte rufen wir „update“ auf, um die Änderungen auf dem Bildschirm anzuzeigen.
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.