Python 使用QPixmap的带图像的Qlabel

Python 使用QPixmap的带图像的Qlabel,python,pyqt5,Python,Pyqt5,我想在Qwidget中包含一个QToolbar,但我发现我只能在QMainWindow中创建一个QToolbar。因此,我想创建一个带有箭头图标的Qlabel。我下载了一个(我想)。但是,在代码中,图像并不像我预期的那样透明,看起来很难看。有没有办法只显示箭头而不显示背景。下面是一个示例代码 import sys from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore import * class A

我想在Qwidget中包含一个QToolbar,但我发现我只能在QMainWindow中创建一个QToolbar。因此,我想创建一个带有箭头图标的Qlabel。我下载了一个(我想)。但是,在代码中,图像并不像我预期的那样透明,看起来很难看。有没有办法只显示箭头而不显示背景。下面是一个示例代码

import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *


class App(QMainWindow):

    def __init__(self):
        super().__init__()
        self.title = 'test'
        self.left = 0
        self.top = 0
        self.width = 300
        self.height = 500
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        self.table_widget = MyTableWidget(self)
        self.setCentralWidget(self.table_widget)

        self.show()

class MyTableWidget(QWidget):

    def __init__(self, parent):
        super(QWidget, self).__init__(parent)
        self.layout = QVBoxLayout(self)

        # Create first tab
        label3 = QLabel()
        pixmap = QPixmap("index2.png")
        smaller_pixmap = pixmap.scaled(32, 32, Qt.KeepAspectRatio, Qt.FastTransformation)
        label3.setPixmap(smaller_pixmap)        
        label3.mouseReleaseEvent = self.on_click

        self.layout.addWidget(label3)
        self.setLayout(self.layout)

    @pyqtSlot()
    def on_click(self, event):
        print('yes')



if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())
您得到的是一个“丑陋”的图像,因为该图像的线条部分透明。我增加了alpha阈值以更好地显示它们:

这些线条是图像的一部分,Qt无法“猜测”图像的哪些部分对您“重要”或“不重要”。
从根本上讲,没有简单的方法可以通过代码删除它们,即使你成功了,结果也会很难看(图像边缘需要部分透明以保持平滑),这不值得付出努力


只需查找其他图像,或通过将其剪切到箭头边框进行编辑。

要帮助他人解决您的问题,请包含您下载的确切图像,而不是谷歌搜索的链接。另外,如果你不仅发布箭头的图像,还发布一个屏幕截图来展示它在实现时的外观,也许会有所帮助。谢谢你的评论,这是我的第一篇帖子。下次我会说得更具体些。很乐意帮忙,这就是这个社区的目的;)由于您是新会员,在发布问题之前先签出可能会有所帮助,直到您习惯了所需的信息:)这些行是因为图标不是免费的。如果你买了它们,它们就没有生产线了。尝试移除它们可能不是一个好主意。如果您不打算购买这些图标,我建议您使用免费网站(如),这样您就可以搜索具有非限制性许可证的图标。非常感谢您的支持。这真的很有帮助