Pyside QT背景窗口半透明无法工作的窗口

时间:2016-01-22 11:49:21

标签: python linux windows qt

我在Linux下用Python开发了一个程序,一切正常,但不在Windows中。我在W10上。

我有一个带Pyside Qt的窗口,左边是一个框架,在灰色背景上有Qpushbutton,在严格上,一个png图像为空,以获得半透明背景。我通过可视化背面的其他窗口来使用它来绘制该区域中的点。

这是我的代码

    def initUI(self):

    # Taille Fenêtre
    self.resize(500, 500)

    # Centrage + plein ecran
    size_ecran = QDesktopWidget().screenGeometry()
    size_fenetre = self.geometry()
    self.move((size_ecran.width()-size_fenetre.width())/2, (size_ecran.height()-size_fenetre.height())/2)
    # self.resize(size_ecran.width(), size_ecran.height())

    hbox = QHBoxLayout(self)
    vbox1 = QVBoxLayout()
    vbox2 = QVBoxLayout()

    self._frameLeft = QFrame(self)
    self._frameLeft.setFrameShape(QFrame.StyledPanel)

    # Calcul Courbe
    self._btnCurve = QPushButton(listeNameButton[0])
    self._btnCurve.setIcon(QIcon('ico/curve.png'))
    self._btnCurve.setIconSize(QSize(55,55))
    self._btnCurve.clicked.connect(self.evtCurve)   

    vbox1.addWidget(self._btnCurve)

这适用于Linux(Ubuntu),而不适用于Windows:正确的部分是黑色。 我尝试使用self.opacityWindow,它可以工作,但整个窗口不仅是右侧的半透明。你有什么想法吗?

由于

    # Transparence
    size_fenetre = self.geometry()
    size_button = self._btnCurve.geometry()

    self._frameLeft.setStyleSheet("background-color:grey;")
    self._frameLeft.setStyleSheet("border: none;")
    self._frameLeft.setGeometry(0,0,size_button.width()+50, size_fenetre.height())

    self._draw = QLabel(self)
    self._drawempty = QPixmap("ico/imgvide.png")
    self._drawempty =self._drawempty.scaled((size_button.width())*1.5,size_fenetre.height())
    self._draw.setStyleSheet("background:transparent;")
    self._draw.setPixmap(self._drawempty)
    vbox2.addWidget(self._draw)

    hbox.addLayout(vbox1)
    hbox.addLayout(vbox2)
    self.setLayout(hbox)
    self.setAttribute(Qt.WA_TranslucentBackground)

我只是一个带有Qt.WA_TranslucentBackground的blackbackground,而不是半透明的。如何管理?

0 个答案:

没有答案