且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在PyQt窗口中显示SVG图像的简单方法

更新时间:2023-11-28 21:42:22

QLabel仅可以加载像素图.如果需要矢量图形,请使用QtSvg.QSvgWidget()并加载svg文件而不进行转换:

QLabel only can load a pixmap. If You need a vector-graphic use QtSvg.QSvgWidget() and load the svg-file without converting:

import sys
from PyQt4 import QtGui, QtSvg

app = QtGui.QApplication(sys.argv) 
svgWidget = QtSvg.QSvgWidget('Zeichen_123.svg')
svgWidget.setGeometry(50,50,759,668)
svgWidget.show()

sys.exit(app.exec_())

或直接由QtSvg.QSvgRenderer渲染为QPaintDevice的任何子类,例如到QLabel:

or render to any subclass of QPaintDevice by QtSvg.QSvgRenderer directly, e.g. to QLabel:

app = QtGui.QApplication(sys.argv) 

widget = QtGui.QLabel()
widget.setGeometry(50,200,500,500)
renderer =  QtSvg.QSvgRenderer('Zeichen_123.svg')
widget.resize(renderer.defaultSize())
painter = QtGui.QPainter(widget)
painter.restore()
renderer.render(painter)
widget.show()

sys.exit(app.exec_())

在此处获取Zeichen_123.svg