Darstellung von SVG-Dateien
SVG-Zeichnungen können auf jeder Unterklasse von ` QPaintDevice ` gerendert werden, beispielsweise auf ` QWidget ` oder ` QImage`. Am einfachsten lassen sich SVG-Dateien mit ` QSvgWidget ` oder ` QSvgRenderer` rendern.
Verwendung von QSvgWidget
QSvgWidget bietet ein praktisches Widget zur Darstellung von SVG-Dateien.
#include <QApplication>
#include <QSvgWidget>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QSvgWidget svgWidget(QStringLiteral(":/images/example.svg"));
svgWidget.setGeometry(100, 100, 400, 400);
svgWidget.show();
return app.exec();
}Sie können eine SVG-Datei auch nach der Erstellung laden:
#include <QApplication>
#include <QSvgWidget>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QSvgWidget *svgWidget = new QSvgWidget;
svgWidget->load(QStringLiteral(":/images/example.svg"));
svgWidget->show();
return app.exec();
}Verwendung von QSvgRenderer
Verwenden Sie „ QSvgRenderer “, um SVG-Inhalte auf einem beliebigen „ QPaintDevice “ darzustellen.
#include <QApplication>
#include <QSvgRenderer>
#include <QImage>
#include <QPainter>
#include <QLabel>
#include <QPixmap>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QSvgRenderer renderer(QStringLiteral(":/images/example.svg"));
if (renderer.isValid()) {
QImage image(400, 400, QImage::Format_ARGB32_Premultiplied);
image.fill(Qt::transparent);
QPainter painter(&image);
renderer.render(&painter);
QLabel label;
label.setPixmap(QPixmap::fromImage(image));
label.resize(400, 400);
label.show();
return app.exec();
}
return 1;
}Sie können ` QSvgRenderer ` auch verwenden, um SVG direkt im `paint`-Ereignis eines benutzerdefinierten Widgets zu rendern:
// In your widget's header file:
#include <QSvgRenderer>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr)
: QWidget(parent), renderer(QStringLiteral(":/images/example.svg")) {}
protected:
void paintEvent(QPaintEvent *) override {
QPainter painter(this);
renderer.render(&painter);
}
private:
QSvgRenderer renderer;
};Mit diesen Ansätzen können Sie SVG-Dateien auf allen von Qt unterstützten „paint“-Geräten rendern, einschließlich „ QWidget “ und „ QImage “.
Rendering-Optionen
QSvgRenderer options bietet über die Enumeration „ “ verschiedene Darstellungsoptionen. Mit diesen Optionen können Sie steuern, wie SVG-Dateien geparst und dargestellt werden. QtSvg::Option
Darstellung animierter SVG-Dateien
Das Modul „ Qt SVG “ unterstützt die Darstellung animierter SVG-Dateien. Weitere Informationen zur Arbeit mit animierten SVGs finden Sie in der Dokumentation zur Klasse ` QSvgRenderer `.
Siehe auch „Vektorgrafikformate in Qt “ und „Erweiterte Funktionen“.
© 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.