Сравните цвет двух объектов 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 и альфа.)