C++ 比较两个QColor对象的颜色
我正在使用“内部测试库”为我的Qt应用程序实现测试。问题在于该库不提供比较两个C++ 比较两个QColor对象的颜色,c++,qt,qcolor,C++,Qt,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(),
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
具有操作符==
。如果(color1==color2),请尝试
这里有文档。(如您所见,它比较RGB和alpha。)
QColor
具有运算符==
。如果(color1==color2)
,请尝试
这里有文档。(如您所见,它比较RGB和alpha。)
希望您不介意我添加一个链接到您的答案Ashwel?是的,操作符==()
应该始终是我们尝试的第一件事,如果类作者还没有实现比较,我们只需要担心自己实现比较。抱歉,我对我的问题不太清楚,我已经更新了它。正如您所提到的,文档中说它比较了RGB和alpha颜色,所以我的比较函数似乎可以正常工作(文档:如果此颜色的RGB和alpha值与颜色相同,则返回true;否则返回false)。希望您不介意我添加一个链接到您的答案Ashwel?是,运算符==()
应该始终是我们尝试的第一件事,如果类作者还没有完成比较,我们只需要担心自己实现比较。对不起,我对我的问题不太清楚,我已经更新了它。正如您所提到的,文档中说它比较RGB和alpha颜色,所以我的比较函数似乎可以按预期工作(文档:如果此颜色的RGB和alpha值与颜色相同,则返回true;否则返回false)。