QSvgWidget Class
QSvgWidget 类提供了一个用于显示可缩放矢量图形(SVG)文件内容的小部件。更多内容...
| 头文件: | #include <qsvgwidget.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS SvgWidgets) target_link_libraries(mytarget PRIVATE Qt6::SvgWidgets) |
| qmake: | QT += svgwidgets |
| 继承自: | QWidget |
- 所有成员列表,包括继承的成员
- QSvgWidget 属于绘图类。
公共函数
| QSvgWidget(QWidget *parent = nullptr) | |
| QSvgWidget(const QString &file, QWidget *parent = nullptr) | |
| virtual | ~QSvgWidget() |
(since 6.7) QtSvg::Options | options() const |
| QSvgRenderer * | renderer() const |
(since 6.7) void | setOptions(QtSvg::Options options) |
重新实现的公共函数
| virtual QSize | sizeHint() const override |
公共槽
重新实现的受保护函数
| virtual void | paintEvent(QPaintEvent *event) override |
详细说明
该类使开发人员能够将 SVG 绘图与标准控件并排显示,其使用方式与使用 `QLabel ` 显示文本和位图图像非常相似。
由于 QSvgWidget 是QWidget 的子类,因此 SVG 绘图是通过显示器的属性来渲染的。通过QSvgRenderer 类可以对渲染过程进行更精细的控制,因为它可用于在其他绘图设备(如QImage 和 QGLWidget)上绘制。可通过renderer() 函数获取该小部件使用的渲染器。
每个 QSvgWidget 既可以使用 SVG 文件的文件名进行初始化,也可以在不指定具体文件的情况下进行初始化,稍后再提供文件。load() 函数提供了两种加载 SVG 文件的方式:它们既可接受 SVG 文件的文件名,也可接受包含 SVG 文件序列化 XML 表示形式的QByteArray 对象。
默认情况下,该控件会提供一个大小提示,以反映其显示的绘图尺寸。如果尚未加载任何数据,该控件将提供默认的QWidget 大小提示。若需自定义此行为,请继承此类并重写sizeHint()方法。
另请参阅 QSvgRenderer 、 Qt SVG C++ Classes以及QPicture 。
成员函数文档
QSvgWidget::QSvgWidget(QWidget *parent = nullptr)
使用给定的parent 创建一个新的SVG显示控件。
QSvgWidget::QSvgWidget(const QString &file, QWidget *parent = nullptr)
使用给定的parent 构建一个新的SVG显示控件,并加载指定file 中的内容。
[virtual noexcept] QSvgWidget::~QSvgWidget()
销毁该小部件。
[slot] void QSvgWidget::load(const QByteArray &contents)
加载指定的 SVG 格式文件contents 并更新小部件。
注意:此 插槽已被重载。要连接到此插槽:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
svgWidget, qOverload(&QSvgWidget::load));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
svgWidget, [receiver = svgWidget](const QByteArray &contents) { receiver->load(contents); }); [slot] void QSvgWidget::load(const QString &file)
加载指定 SVG 文件file 的内容,并更新控件。
注意:此 插槽为重载插槽。要连接此插槽:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
svgWidget, qOverload(&QSvgWidget::load));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
svgWidget, [receiver = svgWidget](const QString &file) { receiver->load(file); }); [since 6.7] QtSvg::Options QSvgWidget::options() const
返回小部件渲染器的选项。
该函数在 Qt 6.7 中引入。
另请参阅 setOptions 。
[override virtual protected] void QSvgWidget::paintEvent(QPaintEvent *event)
重写了:QWidget::paintEvent(QPaintEvent *event)。
QSvgRenderer *QSvgWidget::renderer() const
返回用于显示小部件内容的渲染器。
[since 6.7] void QSvgWidget::setOptions(QtSvg::Options options)
将小部件的渲染器选项设置为options 。
该属性保存一组QtSvg::Option 标志,可用于启用或禁用SVG文件解析和渲染过程中的各项功能。必须在调用load函数之前设置该属性,其设置才能生效。
默认情况下,未设置任何标志。
该函数在 Qt 6.7 中引入。
另请参阅 options 。
[override virtual] QSize QSvgWidget::sizeHint() const
重新实现了属性QWidget::sizeHint 的访问函数。
© 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.