static QStringList不保留值

时间:2013-06-27 18:58:19

标签: c++ qt qstring

由于多个实例化,我希望保留一个静态位置来写入。我希望能够从每个实例添加到列表中。但只保留了第一个 不知道该怎么办?

适用于char类型的指针。但是当我尝试将QStringList转换为指针时,我一直收到错误:Segmentation Fault。

*的.h


QStringList msgList;

*。CPP


fncInit(){
    static QStringList MessageList;
    msgList = MessageList;//keep the location constant for all new instantiations
}

fncBuild(QString strMessage){
    MessageList.append(strMessage); //if I use a pointer QStringList through out, I get Segmentation Fault.
}

fncPrintf(){
    for(int i; i < msgList.count(); i++){
        printf("%d)    %s", i, msgList.at(i).toStdString().c_str());
    } 
}

2 个答案:

答案 0 :(得分:0)

您应该在标头中声明msgList静态。不要忘记在.cpp文件中添加QStringList CLASS_NAME::msgList;

在您的fncInit中,您将空QStringList分配给msgList,但无论如何都是正确的方式。

答案 1 :(得分:0)

在头文件中,您需要以下代码:

static QStringList msgList;

这将使该静态变量可用于包括该头文件在内的所有函数。

当您在函数中声明msgList静态时,您正在创建它的本地实例。