gpt4 book ai didi

python - 如何使用 PySide 访问和编辑 svg 节点?

转载 作者:行者123 更新时间:2023-12-01 01:04:39 33 4
gpt4 key购买 nike

我正在使用PySidesvg图像加载到Qt gui中。使用 inkscape 制作的 svg 由图层和元素(rectcirclepathg 组组成...)。

这是我正在使用的代码:

from PySide import QtSvg                                                                                                                                                                                                                                                             
from PySide.QtCore import QLocale
from PySide.QtGui import *

if __name__ == "__main__":
import sys

app = QApplication(sys.argv)
svgWidget = QtSvg.QSvgWidget('file.svg')
svgWidget.show()

sys.exit(app.exec_())

导入后,是否可以访问和编辑/修改特定节点或元素,例如修改路径或更改矩形的颜色?

最佳答案

由于 SVG 是 XML 文件,因此您可以使用 QDomDocument 打开它并进行编辑。

更改第一条路径颜色的示例:

if __name__ == "__main__":
doc = QDomDocument("doc")

file = QFile("image.svg")
if not file.open(QIODevice.ReadOnly):
print("Cannot open the file")
exit(-1)

if not doc.setContent(file):
print("Cannot parse the content");
file.close()
exit(-1)
file.close()

roots = doc.elementsByTagName("svg")
if roots.size() < 1:
print("Cannot find root")
exit(-1)

# Change the color of the first path
root = roots.at(0).toElement()
path = root.firstChild().toElement()
path.setAttribute("fill", "#FF0000")

app = QApplication(sys.argv)
svgWidget = QtSvg.QSvgWidget()
svgWidget.load(doc.toByteArray())
svgWidget.show()

sys.exit(app.exec_())

关于python - 如何使用 PySide 访问和编辑 svg 节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55478228/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com