ich bin neu hier, schon recht lange mit Python unterwegs, aber neu mit PySide verbandelt. Jetzt möchte ich mehrere Elemente zusammenfassen zu einem einzelnen mit Hilfe einer QGraphicsItemGroup. Und das funktioniert nicht - die Group ist nicht sichtbar. Vielleicht ein Beispiel. Das unten funktioniert bestens:
Code: Alles auswählen
def fill_group_with_full_rose_compass(scene, size=400):
def do_lines(length, delta, no_line, pen):
for angle in [l*delta for l in range(360/delta)]:
if angle in no_line:
continue
line = QGraphicsLineItem(size/2,0, size/2,length)
line.setTransformOriginPoint(size/2, size/2)
line.setRotation(angle)
line.setPen(pen)
scene.addItem(line)
pen = QPen(Qt.black, size/200, Qt.SolidLine, Qt.RoundCap, Qt.RoundJoin)
do_lines(size/8, 30, [], pen)
pen = QPen(Qt.black, size/400, Qt.SolidLine, Qt.RoundCap, Qt.RoundJoin)
do_lines(size/12, 10, [a*30 for a in range(12)], pen)
pen = QPen(Qt.black, size/400, Qt.SolidLine, Qt.RoundCap, Qt.RoundJoin)
do_lines(size/20, 5, [a*10 for a in range(36)], pen)
if __name__ == '__main__':
app = QApplication(sys.argv)
scene = QGraphicsScene()
fill_group_with_full_rose_compass(scene, 400)
Code: Alles auswählen
def fill_group_with_full_rose_compass(group, size=400):
def do_lines(length, delta, no_line, pen):
for angle in [l*delta for l in range(360/delta)]:
if angle in no_line:
continue
line = QGraphicsLineItem(size/2,0, size/2,length)
line.setTransformOriginPoint(size/2, size/2)
line.setRotation(angle)
line.setPen(pen)
group.addToGroup(line)
#group.addItem(line)
pen = QPen(Qt.black, size/200, Qt.SolidLine, Qt.RoundCap, Qt.RoundJoin)
do_lines(size/8, 30, [], pen)
pen = QPen(Qt.black, size/400, Qt.SolidLine, Qt.RoundCap, Qt.RoundJoin)
do_lines(size/12, 10, [a*30 for a in range(12)], pen)
pen = QPen(Qt.black, size/400, Qt.SolidLine, Qt.RoundCap, Qt.RoundJoin)
do_lines(size/20, 5, [a*10 for a in range(36)], pen)
if __name__ == '__main__':
app = QApplication(sys.argv)
scene = QGraphicsScene()
compass = QGraphicsItemGroup()
fill_group_with_full_rose_compass(compass, 400)
scene.addItem(compass)
Grüße!
Axel.