Сравните цвет двух объектов QColor

Я реализую тесты для моего приложения Qt, используя "внутреннюю библиотеку тестов". Проблема в том, что библиотека не предоставляет возможность сравнить два QColor объекты.

Правильно ли использовать следующий код для сравнения цвета двух объектов QColor?

void MyClass::compare(QColor color1, QColor color2)
{
    ASSERT_EQ(color1.red(), color2.red());
    ASSERT_EQ(color1.green(), color2.green());
    ASSERT_EQ(color1.blue(), color2.blue());
    ASSERT_EQ(color1.alpha(), color2.alpha());
}

Или, скорее, достаточно сравнить красный, зеленый, синий и альфа-каналы, чтобы считать два цвета равными?

Примечание: в этом случае мне нужно точно знать, какой канал "не совпадает", поэтому я не могу просто использовать == оператор.

1 ответ

Решение

QColor имеет operator ==, Просто попробуй if(color1 == color2)...

Документация здесь. (Как вы можете видеть, он сравнивает RGB и альфа.)

http://doc.qt.io/qt-4.8/qcolor.html

Другие вопросы по тегам