PyQt5 QGraphicsView透明背景

时间:2017-09-14 10:17:46

标签: python python-3.x pyqt5

我使用PyQt5和python 3.6

我只使用QtWidgets.QGraphicsView来确定鼠标位置数据,我想在后台绘画。

如何设置QtWidgets.QGraphicsView透明?

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)

这只是一个示例类。

提前谢谢你。

2 个答案:

答案 0 :(得分:0)

我试过了!

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

这对我有用

答案 1 :(得分:0)

就我而言,我必须指定背景色而不是背景。 所以:

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

我在C ++上使用Qt 5.14.1