直接定义静态QStringList

Nel*_*Dav 6 qt definition qstringlist

我想在外部文件中创建和定义静态 QStringList。使用 gcc is 可以这样做:

static QStringList list1 = {item1, item2, item4, ...};
Run Code Online (Sandbox Code Playgroud)

但是使用visualStudio c++ 编译器不可能这样做。我收到错误:

初始化列表不能转换为 QStringList

对我来说重要的是,我可以在声明之后直接定义列表。

因为我不想在主文件中定义它。

例如:

主.cpp:

#include "stringlist.cpp"    
int main()
{
    QList<QStringList> list;
    list << list1;
}
...
Run Code Online (Sandbox Code Playgroud)

字符串列表.cpp:

#include <QStringList>
static QStringList list1 = {"hi", "hello"};
Run Code Online (Sandbox Code Playgroud)

我想这样做是因为 QStringList 的定义很长,如果这么大的定义介于其他代码之间,会很混乱。

Nel*_*Dav 5

我找到了解决问题的方法:

您必须在 .pro 文件中键入以下代码段。

DEFINES += Q_COMPILER_INITIALIZER_LISTS
Run Code Online (Sandbox Code Playgroud)