c++ - 比较两个 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(), color2.blue());
    ASSERT_EQ(color1.alpha(), color2.alpha());
}

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

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

最佳答案

QColoroperator ==。只需尝试 if(color1 == color2)...

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

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

关于c++ - 比较两个 QColor 对象的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47455380/

相关文章:

c++ - 将字符串插入堆栈?

mysql - 无法使用 qt 4.8.5 和 Ubuntu 12.04 连接到 mariadb 数据库服务器

c++ - Qt 如何使用带有 QColor 的 RGB 颜色创建 QBrush 并在以后更改它?

c++ - 在不丢失 alpha 值的情况下将 QColor 转换为 QString

qt - 如何在小部件中显示 QColorDialog 中的 QColor?

c++ - 如何在 Linux 平台的 Visual Studio c++ 中编写 GTK 应用程序?

C++ 调试问题 - pdb 文件

c++ - 带参数初始化的单例

python - 无法将 QAbstractListModel 传递给 QML

c++ - 如何让 QT 4.8 应用程序与 Netbeans 7.3 一起运行?