静态QStringList没有保留值

static QStringList is not keeping values

本文关键字:有保留 QStringList 静态      更新时间:2023-10-16

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

适用于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());
    } 
}

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

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

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

static QStringList msgList;

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

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