我有一个函数,它可以使用以下方法更改选定形状的颜色:
selectedShape->shapeColour = (200,200,200);
效果很好。但如果我把它改为:
selectedShape->shapeColour = (0,0,0);
我得到以下错误:
从'int‘到'const QColor’的转换是矛盾的。
知道为什么不喜欢这个吗?
谢谢。
发布于 2013-10-28 15:04:45
尝试:
selectedShape->shapeColour = QColor(0,0,0);使用C++11,您还可以尝试:
selectedShape->shapeColour = {0,0,0};发布于 2013-10-28 15:43:42
您的(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);https://stackoverflow.com/questions/19638184
复制相似问题