서브 클래 싱 QGraphicsRectItem 사용자 정의 파이입니다 가정하면, 다음과 같이 뭔가를 시도 할 수 :
class CustomPie(QtGui.QGraphicsRectItem):
angle = 2000
def paint(self, painter, option, widget):
# Create the path to draw the lines
path = QtGui.QPainterPath()
path.moveTo(self.rect().width()/2, self.rect().height()/2)
path.lineTo(self.rect().width(), self.rect().height()/2)
path.arcMoveTo(self.rect(), self.angle/16) # arcMoveTo in degrees
path.lineTo(self.rect().width()/2, self.rect().height()/2)
# draw a pie with no Pen
painter.setPen(QtGui.QPen(QtCore.Qt.NoPen))
painter.setBrush(QtGui.QBrush(QtCore.Qt.lightGray))
painter.drawPie(self.rect(), 0, self.angle)
# Draw the path with a custom Pen
painter.setPen(QtGui.QPen(QtCore.Qt.black, 2))
painter.drawPath(path)
여기 우리는 파이와 경로 (자신의 방법 실제로 매우 유사)을 그릴
paint
우선합니다. 마찬가지로
__init__
을 오버라이드해야합니다 (클래스 속성으로서의 각도는 원하는 것이 아닐 수도 있습니다).하지만 그 생각입니다.
감사합니다. Yoann! 나는 당신의 방법을 시도했지만 90의 배수가 아닌 각도에 관해서도 같은 문제에 직면했다. 솔리드 브러시로 drawPie()를 호출하고 QPainterPath를 사용하여 바깥 경계 위에 흰색 원을 그려서 사라지게했다. –