【问题标题】:Compare the color of two QColor objects比较两个 QColor 对象的颜色
【发布时间】:2017-11-23 12:15:36
【问题描述】:

我正在使用“内部测试库”为我的 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());
}

或者更确切地说,比较红色、绿色、蓝色和 alpha 通道是否足以认为两种颜色相等?

注意:在这种情况下,我需要确切知道哪个频道“不匹配”,所以我不能只使用== 运算符。

【问题讨论】:

    标签: c++ qt qcolor


    【解决方案1】:

    QColoroperator ==。试试if(color1 == color2)...

    文档在这里。 (如您所见,它比较了 RGB 和 alpha。)

    http://doc.qt.io/qt-4.8/qcolor.html#operator-eq-eq

    【讨论】:

    • 希望你不介意我为你的答案添加链接 Ashwel?
    • 是的,operator==() 应该始终是我们尝试的第一件事,如果课程作者还没有实现比较,则只需担心我们自己。
    • 对不起,我的问题不太清楚,我已经更新了。
    • 正如您所提到的,文档说它比较 RGB 和 alpha 颜色,所以我的比较函数似乎按预期工作(文档:如果此颜色具有与颜色相同的 RGB 和 alpha 值,则返回 true;否则返回 false)。
    猜你喜欢
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 2014-01-26
    • 2012-08-17
    • 2014-03-02
    相关资源
    最近更新 更多