2017-09-14 5 views
1

Ich benutze PyQt5 und Python 3.6PyQt5 QGraphicsView transparenter Hintergrund

Ich benutze die QtWidgets.QGraphicsView nur Maus Positionsdaten zu bestimmen, und ich möchte im Hintergrund malen.

Wie kann ich die QtWidgets.QGraphicsView transparent setzen?

from PyQt5 import QtCore, QtGui, QtWidgets 

    class Ui_Controller(QtWidgets.QMainWindow): 
    def __init__(self, setting): 
     super().__init__() 
     self.setGeometry(50, 150, 1610, 1207) 
     self.graphicsView = QtWidgets.QGraphicsView() 
     self.graphicsView.setMouseTracking(True) 
     self.graphicsView.viewport().installEventFilter(self) 
     self.graphicsView.setObjectName("graphicsView") 
     self.setCentralWidget(self.graphicsView) 

    def paintEvent(self, event): 
     painter = QtGui.QPainter(self) 
     #paint something 

    def eventFilter(self, source, event): 
     if event.type() == QtCore.QEvent.MouseMove: 
      if event.buttons() == QtCore.Qt.NoButton: 
       pos = event.pos() 
       print(str(pos.x())+' '+ str(pos.y())) 
      else: 
       pass # do other stuff 
     return QtGui.QWindow.eventFilter(self, source, event) 

Dies ist nur eine Beispielklasse.

danke im voraus.

+0

Verwenden 'setStyleSheet ("background: transparent")' oder was auch immer das Äquivalent für PyQt? – rbaleksandar

+0

Ich habe es überprüft und es ist da. Es klappt. Vielen Dank! –

Antwort

0

Ich habe das ausprobiert!

self.graphicsView.setStyleSheet("background:transparent;") 

das funktioniert für mich