Я реализую тесты для моего приложения 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());
}
Или, скорее, достаточно сравнить красный, зеленый, синий и альфа-каналы, чтобы считать два цвета равными?
Заметка: в этом случае мне нужно точно знать, какой канал «не соответствует», поэтому я не могу просто использовать ==
оператор.
QColor
имеет operator ==
, Просто попробуй if(color1 == color2)
…
Документация здесь. (Как вы можете видеть, он сравнивает RGB и альфа.)
Других решений пока нет …