通过初始化程序列表初始化QList
问题描述:
我的硬盘驱动器已损坏,我必须重新设置所有内容。通过初始化程序列表初始化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位)。我错过了什么?
帮助将不胜感激。
答
您正在使用复制初始化语义而不是直接列表初始化。您应检查您是否已经在.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已经添加到我的专业文件中,并且确实无法正常工作。使用此将提示相同的错误 –
答
尝试删除最后一个逗号。 它变为:
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)};
定义+ = Q_COMPILER_INITIALIZER_LISTS可以放入.pro文件来修复错误,但是这仅仅是一个解决办法。 –
你正在使用哪个版本的Qt5? – Arpegius
我正在使用5.3.2 –