这是因为默认情况下,QSvgRenderer
将 SVG 文件的背景颜色设置为灰色。要更改此行为,请调用 QSvgRenderer::setBackgroundColor()
函数,并将其设置为与您的 QPixmap
背景颜色相同的值。
例如,如果您的 QPixmap
背景颜色为黑色,则可以使用以下代码:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 加载 SVG 文件
QSvgRenderer renderer("your_svg_file.svg");
// 创建 QPixmap 对象并设置大小和背景颜色
QPixmap pixmap(renderer.defaultSize());
pixmap.fill(Qt::black);
// 使用 QPainter 在 pixmap 上绘制 SVG 图像
QPainter painter(&pixmap);
// 设置背景颜色与 pixmap 相同
renderer.setBackgroundColor(Qt::black);
renderer.render(&painter);
// 显示绘制好的图像到界面上
QLabel label;
label.setPixmap(pixmap);
label.show();
return a.exec();
}
在这个示例中,我们首先创建了一个黑色背景的 QPixmap
对象。然后,在绘制SVG之前,我们通过调用 setBackgroundColor()
函数来告诉渲染器使用黑色作为SVG文件的背景颜色。
希望这个回答对您有所帮助。