2016-05-17 282 views
0

我的硬盘驱动器已损坏,我必须重新设置所有内容。通过初始化程序列表初始化QList

问题是,以前工作的代码现在抛出错误。

QList<QColor> colors = { 
    QColor(0, 255, 255, 255), 
    QColor(0, 200, 255, 255), 
    QColor(0, 170, 255, 255), 
    QColor(0, 150, 255, 255), 
    QColor(0, 130, 255, 255), 
}; 

错误: d:\ dev的\ est_tsd \测试\ testgis.cpp:19:错误:C2440: '初始化':无法从 '初始化列表' 到 '的QList' 没有构造转换可能需要源类型或构造函数重载分辨率模糊

我读到Qt支持QList的初始化列表现在 (套件名称:桌面Qt 5.3 MSVC2013 OpenGL 64位)。我错过了什么?

帮助将不胜感激。

+0

定义+ = Q_COMPILER_INITIALIZER_LISTS可以放入.pro文件来修复错误,但是这仅仅是一个解决办法。 –

+0

你正在使用哪个版本的Qt5? – Arpegius

+0

我正在使用5.3.2 –

回答

2

您正在使用复制初始化语义而不是直接列表初始化。您应检查您是否已经在.pro文件:

CONFIG += c++11 

,然后使用:

QList<QColor> colors{ 
    QColor(0, 255, 255, 255), 
    QColor(0, 200, 255, 255), 
    QColor(0, 170, 255, 255), 
    QColor(0, 150, 255, 255), 
    QColor(0, 130, 255, 255), 
}; 
+0

非常感谢您的快速回答,但CONFIG + = C++ 11已经添加到我的专业文件中,并且确实无法正常工作。使用此将提示相同的错误 –

0

尝试删除最后一个逗号。 它变为:

QList<QColor> colors = { 
QColor(0, 255, 255, 255), 
QColor(0, 200, 255, 255), 
QColor(0, 170, 255, 255), 
QColor(0, 150, 255, 255), 
QColor(0, 130, 255, 255)}; 
相关问题