如何在PyQt>中使图标背景透明?

时间:2017-05-22 13:59:34

标签: python pyqt icons

我使用带有白色背景的菜单图标。当我开始我的程序时,我在灰色菜单项上看到了这个白色背景。它看起来不太好看。如何使白色背景透明,不看白色?

3 个答案:

答案 0 :(得分:1)

尝试以下方法:

  1. self.setStyleSheet(“background-color:transparent;)
  2. self.setFlags(Qt.WA_TranslucentBackground)
  3. 您还可以选择设置面具
  4. def make_transparent(self):
    
        self.setStyleSheet("background: transparent;")
    
        mMask = QPixmap(self.width(), self.height())
        mMask.fill(Qt.transparent)
    
        p = QPainter()
        p.begin(mMask)
        p.setPen(Qt.red)
        p.setBrush(QBrush(Qt.red))
    
        p.drawRect(QRect(0, 0, 1000, 1000))
    
        p.end()
    
        self.setMask(mMask.mask())
    

    只需适应您想要的尺寸和颜色。

答案 1 :(得分:0)

首先应该有一个透明图像,除了菜单之外的所有内容都是空像素(png格式)。

您的pyqt应用程序无法区分背景和前景。

您可以尝试在线删除图片背景here

答案 2 :(得分:0)

此答案对当前问题无济于事,但它是针对将来将要寻找一种设置透明图标的人的

所以我想摆脱默认的Windows图标,并且我也没有该应用程序的任何徽标,所以我认为使Icon透明将摆脱该Windows图标。

    pixmap = QtGui.QPixmap(255, 255)
    pixmap.fill(QtGui.QColor(0,0,0,0))
    MainWindow.setWindowIcon(QtGui.QIcon(pixmap))