上述方法使用下来我的QFileIconProvider().icon()底色不是透明
时间: 2024-04-08 13:33:54 浏览: 16
如果你想要在QFileIconProvider().icon()中使用带有透明背景的黑色图标,可以尝试使用QPainter来绘制一个带有透明背景的黑色图标。以下是一个示例代码:
```cpp
QImage image(16, 16, QImage::Format_ARGB32); // 创建一个16x16大小的ARGB格式的QImage
image.fill(Qt::transparent); // 将图片背景设置为透明
QPainter painter(&image);
painter.setCompositionMode(QPainter::CompositionMode_Source);
painter.fillRect(image.rect(), Qt::transparent); // 将绘制区域填充为透明色
painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
painter.setPen(Qt::black);
painter.setBrush(Qt::NoBrush);
painter.drawRect(image.rect()); // 绘制一个黑色矩形
QIcon icon(QPixmap::fromImage(image)); // 使用生成的QImage创建一个QIcon对象
```
在这个示例中,我们创建了一个16x16大小的ARGB格式的QImage,并将其背景设置为透明。然后,我们使用QPainter来绘制一个带有透明背景的黑色矩形,并将其作为一个QPixmap传递给QIcon构造函数,从而创建一个具有透明背景的黑色图标。