我想使用 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')
绘制出以下图像:
我想做同样的事情,但渲染 SVG。
pyqt5.qtsvg 模块可以吗?如何将其插入到上面的代码中?我只是找不到任何例子。
我终于找到了解决方案:
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 实际上提供了一个生成器,它被作为 QPainter() 的参数。
另外,我想做的是以“脚本”方式比使用无用的类更好。
我也不需要 QApplication,只需要绘画过程,这大大加快了过程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)