[英]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.