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