在QT c ++中更改QColor

时间:2013-10-28 15:01:06

标签: c++ qt

我有一个功能,可以使用以下方法更改所选形状的颜色:

selectedShape->shapeColour = (200,200,200);

工作正常。但如果我把它改为:

selectedShape->shapeColour = (0,0,0);

我收到以下错误:

  

从'int'到'const QColor'的转换是不明确的

为什么它不喜欢这个?

感谢。

2 个答案:

答案 0 :(得分:5)

尝试:

selectedShape->shapeColour = QColor(0,0,0);

使用C++11您也可以尝试:

selectedShape->shapeColour = {0,0,0};

答案 1 :(得分:5)

使用逗号运算符评估您的(200,200,200)为值为200的整数。

这满足QColor( QRgb color )构造函数,因为QRgb是无符号整数的typedef。

这与(0,0,0)情况不同,后者的计算结果为0,因为0也可以解释为空指针。

在你的上下文中,这会引起歧义,因为QColor也有一个带有指针QColor( const char * name )的构造函数。

编译器无法判断您打算使用哪种构造,因此会给出错误的错误。

您可以使用 -

解决此问题
selectedShape->shapeColour = QColor(0,0,0);

如果你想要你想要的颜色,我建议你也使用这种方法(200,200,200) -

selectedShape->shapeColour = QColor(200,200,200);