PyQt5-그리기 API
모든 QWidgetPyQt의 클래스는 QPaintDevice 클래스에서 하위 클래스로 분류됩니다. ㅏQPaintDeviceQPainter를 사용하여 그릴 수있는 2 차원 공간의 추상화입니다. 페인트 장치의 치수는 왼쪽 상단 모서리부터 픽셀 단위로 측정됩니다.
QPainter클래스는 위젯 및 프린터와 같은 기타 페인트 가능한 장치에서 로우 레벨 페인팅을 수행합니다. 일반적으로 위젯의 페인트 이벤트에서 사용됩니다. 그만큼QPaintEvent 위젯의 모양이 업데이트 될 때마다 발생합니다.
화가는 다음을 호출하여 활성화됩니다. begin() 방법, 동안 end()메서드는 그것을 비활성화합니다. 그 사이에 원하는 패턴은 다음 표에 나열된 적절한 방법으로 페인팅됩니다.
Sr. 아니. | 방법 및 설명 |
---|---|
1 | begin() 대상 장치에서 페인팅을 시작합니다. |
2 | drawArc() 시작 각도와 끝 각도 사이에 호를 그립니다. |
삼 | drawEllipse() 직사각형 안에 타원을 그립니다. |
4 | drawLine() 끝점 좌표가 지정된 선을 그립니다. |
5 | drawPixmap() 이미지 파일에서 픽스맵을 추출하여 지정된 위치에 표시합니다. |
6 | drwaPolygon() 좌표 배열을 사용하여 다각형을 그립니다. |
7 | drawRect() 지정된 너비와 높이로 왼쪽 상단 좌표에서 시작하는 직사각형을 그립니다. |
8 | drawText() 주어진 좌표에 텍스트를 표시합니다. |
9 | fillRect() QColor 매개 변수로 사각형을 채 웁니다. |
10 | setBrush() 페인팅을위한 브러시 스타일을 설정합니다. |
11 | setPen() 그리기에 사용할 펜의 색상, 크기 및 스타일을 설정합니다. |
예
다음 코드에서는 PyQt의 그리기 방법의 다양한 방법이 사용됩니다.
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class Example(QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.text = "hello world"
self.setGeometry(100,100, 400,300)
self.setWindowTitle('Draw Demo')
self.show()
def paintEvent(self, event):
qp = QPainter()
qp.begin(self)
qp.setPen(QColor(Qt.red))
qp.setFont(QFont('Arial', 20))
qp.drawText(10,50, "hello Python")
qp.setPen(QColor(Qt.blue))
qp.drawLine(10,100,100,100)
qp.drawRect(10,150,150,100)
qp.setPen(QColor(Qt.yellow))
qp.drawEllipse(100,50,100,50)
qp.drawPixmap(220,10,QPixmap("pythonlogo.png"))
qp.fillRect(20,175,130,70,QBrush(Qt.SolidPattern))
qp.end()
def main():
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
위의 코드는 다음 출력을 생성합니다.