在QT c ++中更改QColor

hun*_*rge 2 c++ qt

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

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

哪个工作正常.但是,如果我将其更改为:

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

我收到以下错误:

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

任何想法为什么它不喜欢这个?

谢谢.

use*_*108 5

尝试:

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)


Ian*_*ook 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);
Run Code Online (Sandbox Code Playgroud)

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

selectedShape->shapeColour = QColor(200,200,200);
Run Code Online (Sandbox Code Playgroud)