möchte Teilkreislinie ohne Winkellinie zeichnen.
Dazu habe ich hier ein Beispiel, damit Ihr versteht was ich meine.
Code: Alles auswählen
from PyQt5.QtCore import (
Qt,
QEvent,
)
from PyQt5.QtWidgets import (
QApplication,
QGraphicsView,
QGraphicsScene,
QGraphicsItem,
QGraphicsEllipseItem,
)
from PyQt5.QtGui import (
QPen,
QBrush,
)
class GeometryDraw(QGraphicsView):
def __init__(self, anglecircles=None):
super(GeometryDraw, self).__init__()
self.viewport().installEventFilter(self)
self.scene = QGraphicsScene(self)
self.setScene(self.scene)
try:
self.anglecircles(anglecircles)
except TypeError:
pass
self.setCacheMode(QGraphicsView.CacheBackground)
self.show()
def anglecircles(self, anglecircles):
for x, y, d, startangle, spanangle, color in anglecircles:
circle = QGraphicsEllipseItem(x, y, d, d)
circle.setStartAngle(startangle)
circle.setSpanAngle(spanangle)
self.finish(color, circle)
def finish(self, color, item):
pen = QPen()
pen.setBrush(QBrush(color))
item.setPen(pen)
item.setFlags(QGraphicsItem.ItemIsMovable |
QGraphicsItem.ItemIsSelectable)
self.scene.addItem(item)
def main():
import sys
startangle = 0
alpha = 121.081
spanangle = int(alpha*16)
r0 = 148.660
r1 = 74.330
anglecircles = [
(-r0, -r0, r0*2, startangle, spanangle, Qt.green),
(-r1, -r1, r1*2, startangle, spanangle, Qt.green),
]
app = QApplication(sys.argv)
obj = GeometryDraw(anglecircles=anglecircles)
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Grüße Nobuddy