繁体   English   中英

QList问题

[英]Trouble with QList

如果我在函数内设置了QList,它将正常工作

void MainWindow::ReadXML() {
    ...
    QList<QString> list;
    list << "alfa" << "beta" << "gamma" << "delta" << "epsilon";
    ...
}

但是,如果尝试在块外编写相同的代码(QList必须对整个文件可见),则Qt Creator会用红色下划线表示最后一行告诉我这个错误:“ expeded toclaration”

有什么建议吗?

您将有几种解决此问题的方法,但以下是其中一种:

static QStringList myStringList = QStringList << "foo" << "bar" << "baz";

void MainWindow::ReadXML() 
{
    ...
    useMyStringList(myStringList);
     ...
}

但是使用这样的静态变量是不好的做法,因此我可能会更多地使用C ++,至少,我会创建一个如下函数:

static QStringList myStringList()
{
    static QStringList stringList = QStringList() << "foo" << "bar" << "baz";
    return stringList;
}


void MainWindow::ReadXML() 
{
    ...
    useMyStringList(myStringList());
     ...
}

1)请注意,您可以使用QStringList而不是QList。 它会为您提供方便的方法,总的来说,它感觉更自然。

2)在C ++ 11及更高版本上,您可以使用初始化列表,因此无需编写:

QStringList myStringList = QStringList << "foo" << "bar" << "baz";

您可以这样做:

QStringList myStringList{"foo", "bar", "baz"};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM