Обновить цвет изображения или цвет фона изображения - PullRequest
0 голосов
/ 13 января 2011

Я делаю Image Editor App. Я хочу добавить 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();  
    }  
}

Я не знаю, как изменить цвет изображенияили цвет фона этого изображения ... это возможно?

Есть идеи?

Спасибо ...

Ответы [ 2 ]

2 голосов
/ 13 января 2011

Какой тип вашего виджета imageHolder?

Я бы рекомендовал использовать Таблица стилей Qt для изменения цвета фона виджета.

Как QtДокументация гласит:

Использование QPalette не гарантирует работу для всех стилей, поскольку авторы стилей ограничены рекомендациями различных платформ и собственным механизмом тем.

Чтобы изменить цвет фона вашего виджета (может быть некоторое ограничение в зависимости от типа imageHolder), вот что вы могли бы сделать что-то вроде этого:

ui->imageHolder->setStyleSheet("background-color : " + color.name());
1 голос
/ 13 января 2011

Если вы пытаетесь изменить значения пикселей изображения, QPalette - это не то, для чего вы думаете.Он предназначен для изменения цветов элементов пользовательского интерфейса.

Если цвет фона - это все, что вы хотите изменить, QPalette может сделать эту работу, но вам понадобится изображение, содержащее альфа-канал или маску прозрачности.Загрузите PNG с альфа в ваш держатель изображения и посмотрите, работает ли он.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...