[파이썬] `PyQt`에서의 SVG 핸들링

SVG(Scalable Vector Graphics)는 벡터 기반의 이미지 포맷으로, 높은 화질과 크기 조정 가능성으로 인해 인기를 얻고 있습니다. PyQt는 Python과 Qt 프레임워크를 결합한 도구로, PyQt를 사용하면 Python으로 SVG 파일을 로드하고 편집할 수 있습니다.

이번 블로그 포스트에서는 PyQt에서 SVG를 로드하고 표시하는 방법을 알아보겠습니다.

PyQt로 SVG 파일 로드하기

먼저, PyQt의 QSvgWidget 클래스를 사용하여 SVG 파일을 로드합니다. 다음 예제 코드를 참고해보세요:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout
from PyQt5.QtSvg import QSvgWidget

app = QApplication(sys.argv)

window = QWidget()
layout = QVBoxLayout()

svg_widget = QSvgWidget("image.svg")
layout.addWidget(svg_widget)

window.setLayout(layout)
window.show()

sys.exit(app.exec_())

위 코드에서는 PyQt5의 QApplication, QWidget, QVBoxLayout, QSvgWidget 클래스를 임포트하고, QSvgWidget 인스턴스를 생성하여 SVG 파일을 로드하고 QVBoxLayout을 사용하여 SVG 위젯을 레이아웃에 추가합니다. 마지막으로 QApplication을 실행하여 윈도우를 표시합니다.

PyQt에서 SVG 편집하기

SVG 파일을 로드한 후 PyQt를 사용하여 SVG를 편집할 수 있습니다. 다음은 PyQt에서 SVG의 일부 속성을 변경하는 예제 코드입니다:

from PyQt5.QtWidgets import QApplication, QSvgWidget
from PyQt5.QtGui import QPainter, QBrush
from PyQt5.QtCore import Qt

app = QApplication([])

svg_widget = QSvgWidget("image.svg")

painter = QPainter(svg_widget.renderer())
painter.setBrush(QBrush(Qt.blue))
painter.setPen(Qt.NoPen)
painter.drawRect(0, 0, 100, 100)

svg_widget.update()
svg_widget.show()

app.exec_()

위 코드에서는 PyQt5의 QSvgWidget, QPainter, QBrush, Qt 등의 클래스 및 모듈을 사용하여 SVG 파일을 로드하고, 편집한 후에 윈도우에 표시합니다. 위의 예제에서는 파란색 사각형을 SVG에 추가하는 방법을 보여줍니다.

마무리

PyQt를 사용하여 SVG 파일을 로드하고 편집하는 방법에 대해 알아보았습니다. PyQt는 강력한 도구로, 이외에도 다양한 SVG 편집 및 조작 기능을 제공합니다. 자세한 내용을 알고 싶다면 PyQt 공식 문서를 참고하세요.

SVG는 다른 이미지 포맷보다 더 나은 화질과 크기 조정 가능성을 제공하므로, PyQt와 SVG를 활용하면 더 풍부하고 유연한 사용자 인터페이스를 구현할 수 있습니다.