Qt 更新图像的颜色或图像的背景色

Qt 更新图像的颜色或图像的背景色,qt,Qt,我正在制作图像编辑器应用程序。我想添加QColorDialog以更新图像的颜色。 我已将图像设置为QLabel 这是我的代码,运行良好,但无法更改图像的颜色 void ImageViewer::updateColor() { QColor color = QColorDialog::getColor(Qt::white,ui->imageHolder); if(color.isValid()) { // QPixmap pixmap = *ui-&g

我正在制作图像编辑器应用程序。我想添加
QColorDialog
以更新图像的颜色。 我已将图像设置为
QLabel

这是我的代码,运行良好,但无法更改图像的颜色

void ImageViewer::updateColor()
{
    QColor color = QColorDialog::getColor(Qt::white,ui->imageHolder);

    if(color.isValid())
    {
//        QPixmap pixmap = *ui->imageHolder->pixmap();  
//        pixmap.fill(color);**  //this is also not change color of image  
        ui->imageHolder->setPalette(QPalette(color));  
        ui->imageHolder->setAutoFillBackground(true);  
        ui->imageHolder->update();  
    }  
}
我不知道如何改变图像的颜色或图像的背景颜色。。。 可能吗

有什么想法吗


谢谢…

您的
imageHolder
小部件的类型是什么

我建议使用来更改小部件的背景色

正如Qt文件所述:

使用Qpalete并不能保证适用于所有样式,因为样式作者受到不同平台指南和本机主题引擎的限制

要更改小部件的背景颜色(根据
imageHolder
的类型可能会有一些限制),您可以执行以下操作:

ui->imageHolder->setStyleSheet("background-color : " + color.name());

您的
imageHolder
小部件的类型是什么

我建议使用来更改小部件的背景色

正如Qt文件所述:

使用Qpalete并不能保证适用于所有样式,因为样式作者受到不同平台指南和本机主题引擎的限制

要更改小部件的背景颜色(根据
imageHolder
的类型可能会有一些限制),您可以执行以下操作:

ui->imageHolder->setStyleSheet("background-color : " + color.name());

如果您试图更改图像的像素值,则Qpalete不是您所认为的用途。它用于更改UI元素的颜色


如果背景颜色是您想要更改的全部颜色,Qpalete可以完成这项工作,但您需要包含alpha通道或透明遮罩的图像。将带有alpha的PNG加载到图像支架中,看看是否有效。

如果您试图更改图像的像素值,则Qpalete不是您所认为的用途。它用于更改UI元素的颜色

如果背景颜色是您想要更改的全部颜色,Qpalete可以完成这项工作,但您需要包含alpha通道或透明遮罩的图像。将带有alpha的PNG加载到图像夹中,然后查看是否有效