Ich habe heute einige Zeit damit verbracht die Herkunft schwarzer Linien in einer `QGraphicsView` zu ergründen. Es liegt anscheinend an der Methode `setPen()`, die standardmäßig um jede geometrische Form eine 1 Pixel breite schwarze Linie zeichnet. In der Doku zur Klasse `QPainter` habe ich lediglich folgende Erklärungen zur Methode `setPen()` gefunden:
In meinem Beispielcode unten wird die Methode `setPen()` nicht aufgerufen, aber trotzdem erscheint eine 1 Pixel breite schwarze Außenlinie am Rechteck.Sets the painter's pen to have style Qt::SolidLine, width 1 and the specified color.
Sets the painter's pen to have the given style, width 1 and black color.
- Warum wird die Methode `setPen()` aufgerufen?
 - Wo in der Doku erfährt man, welche Werte standardmäßig gelten?
 
Code: Alles auswählen
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QGraphicsView, QGraphicsScene
from PyQt5.QtGui import QPainterPath
class GraphicsWindow(QGraphicsView):
    def __init__(self, parent=None):
        super(GraphicsWindow, self).__init__(parent)
        scene = QGraphicsScene(self)
        self.setScene(scene)
        scene.setSceneRect(-500, -500, 1000, 1000)
        self.setBackgroundBrush(Qt.white)
        path = QPainterPath()
        path.addRect(100, 100, 200, 200)
        self._path = scene.addPath(path)
        self._path.setBrush(Qt.white)
        #self._path.setPen(Qt.transparent) # Keine Außenlinie
def main():
    app = QApplication(sys.argv)
    graphics_window = GraphicsWindow()
    graphics_window.show()
    sys.exit(app.exec_())
if __name__ == '__main__':
    main()Atalanttore
