更新图像的颜色或图像的背景颜色
问题描述:
我正在使图像编辑器App.I想要添加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();
}
}
我不知道如何改变图像或图像的色彩backbround的颜色... 是更多钞票?
有什么想法?
谢谢...
答
如果你想改变图像的像素值QPalette不是你认为它的目的。它用于更改UI元素的颜色。
如果你想改变背景颜色,QPalette可以完成这项工作,但你需要一个包含alpha通道或透明度遮罩的图像。将带有alpha的PNG加载到您的图像保持器中,然后查看是否有效。
答
你是什么imageHolder
控件的类型?
我会推荐使用Qt Style Sheet来更改小部件的背景颜色。
由于Qt文档状态:
使用QPalette不保证所有款式工夫,因为作者的风格是由不同的平台的指导方针,并通过原生主题引擎的限制。
要更改窗口小部件的背景颜色(有可能是取决于imageHolder
类型有些限制),这里是你能做什么事情是这样的:
ui->imageHolder->setStyleSheet("background-color : " + color.name());