我有一个功能,可以使用以下方法更改所选形状的颜色:
selectedShape->shapeColour = (200,200,200);
哪个工作正常.但是,如果我将其更改为:
selectedShape->shapeColour = (0,0,0);
我收到以下错误:
从'int'到'const QColor'的转换是不明显的
任何想法为什么它不喜欢这个?
谢谢.
尝试:
selectedShape->shapeColour = QColor(0,0,0);
Run Code Online (Sandbox Code Playgroud)
和C++11你一起也可以尝试:
selectedShape->shapeColour = {0,0,0};
Run Code Online (Sandbox Code Playgroud)
(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);
Run Code Online (Sandbox Code Playgroud)
如果你想要你想要的颜色,我建议你也使用这种方法(200,200,200) -
selectedShape->shapeColour = QColor(200,200,200);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4036 次 |
| 最近记录: |