如果我在函数中设置了QList,它就能正常工作
void MainWindow::ReadXML() {
...
QList<QString> list;
list << "alfa" << "beta" << "gamma" << "delta" << "epsilon";
...
}
但是,如果试图在代码块之外编写相同的代码段( QList必须对整个文件可见),Qt Creator会在最后一行用红色下划线,并告诉我这个错误:"expeted to declaration“
有什么建议吗?
发布于 2014-03-12 00:28:05
您可能有几种方法来解决此问题,但下面是其中一种:
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和on,你可以使用初始化器列表,所以不用写:
QStringList myStringList = QStringList << "foo" << "bar" << "baz";
你可以这样做:
QStringList myStringList{"foo", "bar", "baz"};
https://stackoverflow.com/questions/22339388
复制相似问题