PySide2:从变量而不是文件加载 SVG

问题描述 投票:0回答:1

我想使用 PySide 显示

svg
文件。但我不想创建
file.svg
然后使用
QSvgWidget

加载它

我只是将

file.svg
内容的文件内容作为字符串存储在变量中。

我如何直接从变量加载 SVG 而不是形成文件。

最好

python pyside2
1个回答
0
投票

您需要将字符串转换为QByteArray

来自文档(https://doc.qt.io/qtforpython-6/PySide6/QtSvgWidgets/QSvgWidget.html#PySide6.QtSvgWidgets.PySide6.QtSvgWidgets.QSvgWidget.load

这是完整的演示:

from PySide6.QtWidgets import QApplication
from PySide6.QtSvgWidgets import QSvgWidget
from PySide6.QtCore import QByteArray
import sys

svg_string="""<svg width="50" height="50">
    <circle cx="25" cy="25" r="20"/>
</svg>"""
svg_bytes = QByteArray(svg_string)
app = QApplication(sys.argv)
svgWidget = QSvgWidget()
svgWidget.renderer().load(svg_bytes)
svgWidget.show()
sys.exit(app.exec_())
© www.soinside.com 2019 - 2024. All rights reserved.