QList通过初始值设定项列表进行初始化

QList initialization via initializer list

本文关键字:列表 初始化 QList      更新时间:2023-10-16

我的硬盘坏了,我不得不重新设置一切。

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

    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\tests\testgis.cpp:19:错误:C2440:"initializing":无法从"initializer list"转换为"QList"没有构造函数可以采用源类型,或者构造函数重载解析不明确

我读到Qt现在支持QList的初始值设定项列表(套件名称:Desktop 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)
};

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

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)};