Pyside QT背景窗口半透明不工作窗口

2024-06-26 00:00:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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上:正确的部分是黑色的。 我试过了自身不透明窗口,但整个窗户是半透明的,不仅仅是右侧。你知道吗?你知道吗

谢谢

    # 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\u半透明背景,不是半透明的。你如何管理这个?你知道吗


Tags: selfsizepngqtwidth背景heightdraw