首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QT c++中QColor的改变

QT c++中QColor的改变
EN

Stack Overflow用户
提问于 2013-10-28 15:01:06
回答 2查看 5.5K关注 0票数 2

我有一个函数,它可以使用以下方法更改选定形状的颜色:

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

效果很好。但如果我把它改为:

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

我得到以下错误:

从'int‘到'const QColor’的转换是矛盾的。

知道为什么不喜欢这个吗?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-10-28 15:04:45

尝试:

代码语言:javascript
复制
selectedShape->shapeColour = QColor(0,0,0);

使用C++11,您还可以尝试:

代码语言:javascript
复制
selectedShape->shapeColour = {0,0,0};
票数 5
EN

Stack Overflow用户

发布于 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 )的构造函数。

编译器无法判断您想要的是哪种构造,因此给出了它不明确的错误。

你可以用-

代码语言:javascript
复制
selectedShape->shapeColour = QColor(0,0,0);

如果你想要你想要的颜色,我建议你也用这个方法来处理你的(200,200,200)箱子-

代码语言:javascript
复制
selectedShape->shapeColour = QColor(200,200,200);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19638184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档