简单的颜色填充QIcons在Qt

时间:2012-11-12 19:58:29

标签: c++ qt qmenu qicon

我需要创建一个更改QWidget背景的菜单。我想将一个代表所选颜色的QIcon放入填充QMenu的QActions中。我不想弹出Photoshop并手动绘制图标。是否可以编写一个充满特定颜色的简单图标?这样我可以根据需要进行任意数量的QActions,而且我不需要在Photoshop中制作一大堆图标。 \

2 个答案:

答案 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))