使用pyqt5生成SVG文件

2024-10-01 02:35:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用pyqt5来使用Python绘制一些简单的矢量图像。在

到目前为止,我已经成功地用以下代码生成了一个图像:

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *


class MyPainter(QImage):
    def __init__(self):
        super().__init__(400, 400, QImage.Format_RGB32)
        self.fill(Qt.black)
        painter = QPainter(self)
        painter.setPen(QPen(Qt.red, 8))
        painter.drawRect(40, 40, 200, 100)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = MyPainter()
    w.save('test.png', 'PNG')

绘制了以下图像:

Generated image

我想做同样的事情,但渲染一个SVG。在

svg模块pyqt5是否可能?如何在上面的代码中插入它?我只是找不到任何例子。在


Tags: from图像importselfinit矢量sys绘制
1条回答
网友
1楼 · 发布于 2024-10-01 02:35:19

我终于找到了解决办法:

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtSvg import *

if __name__ == "__main__":
    generator = QSvgGenerator()
    generator.setFileName("test.svg")
    generator.setSize(QSize(400, 400))
    generator.setViewBox(QRect(0, 0, 400, 400))
    painter = QPainter(generator)
    painter.fillRect(QRect(0, 0, 400, 400), Qt.black)
    painter.setPen(QPen(Qt.red, 8))
    painter.drawRect(40, 40, 200, 100)
    painter.end()

QtSvg实际上提供了一个生成器,它作为qpaint()的参数。在

另外,我想用“脚本”的方式比使用无用的类更好。在

我也不需要一个qa应用程序,只需要绘画过程,这会大大加快这个过程。在

相关问题 更多 >