我需要创建一个更改QWidget背景的菜单。我想将一个代表所选颜色的QIcon放入填充QMenu的QActions中。我不想弹出Photoshop并手动绘制图标。是否可以编写一个充满特定颜色的简单图标?这样我可以根据需要进行任意数量的QActions,而且我不需要在Photoshop中制作一大堆图标。 \
答案 0 :(得分:13)
您可以从QPixmap构建QIcon。可以使用给定的大小构造QPixmap,然后使用“填充”填充颜色。
例如,要创建红色的100x100图标:
QPixmap pixmap(100,100);
pixmap.fill(QColor("red"));
QIcon redIcon(pixmap);
答案 1 :(得分:6)
想出了如何将颜色从图标更改为任何其他颜色。因此,图标的图像必须由一种纯色(此处:'黑色')组成,可以使用像素图将其转换为另一种颜色(如红色') :
pixmap = QPixmap(filename)
mask = pixmap.createMaskFromColor(QColor('black'), Qt.MaskOutColor)
pixmap.fill((QColor('red')))
pixmap.setMask(mask)
btNew = QToolButton()
btNew.setIcon(QIcon(pixmap))