我在调用函数时存储QStringList了一个QVariant变量setData.现在我想从QVariant变量中恢复这些数据.怎么做?
编辑:我试过转换,但我似乎不明白它是如何工作的.
我想在外部文件中创建和定义静态 QStringList。使用 gcc is 可以这样做:
static QStringList list1 = {item1, item2, item4, ...};
Run Code Online (Sandbox Code Playgroud)
但是使用visualStudio c++ 编译器不可能这样做。我收到错误:
初始化列表不能转换为 QStringList
对我来说重要的是,我可以在声明之后直接定义列表。
因为我不想在主文件中定义它。
例如:
主.cpp:
#include "stringlist.cpp"
int main()
{
QList<QStringList> list;
list << list1;
}
...
Run Code Online (Sandbox Code Playgroud)
字符串列表.cpp:
#include <QStringList>
static QStringList list1 = {"hi", "hello"};
Run Code Online (Sandbox Code Playgroud)
我想这样做是因为 QStringList 的定义很长,如果这么大的定义介于其他代码之间,会很混乱。
我想知道是否有人知道Qt库方法可以采取两个QStringList并从第二个列表中删除一个列表中包含的所有字符串.
我试图遍历a QStringList,打印字符串,然后从列表中删除它.我似乎无法找到一个有效的QStringList方法!例如:
for ( QStringList::Iterator it = commandList.begin(); it != commandList.end(); ++it ) {
out << "Processed command: " << *it << endl;
*it.erase();
}
Run Code Online (Sandbox Code Playgroud)
给出编译错误:'QList :: Iterator'没有名为'erase'的成员
++it如果我在列表中途删除项目可能会失败)我究竟做错了什么?我想在 QStringList 中找到与给定 QRegularExpression 匹配的字符串的索引。
#include <QCoreApplication>
#include <QStringList>
#include <QRegularExpression>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QStringList list{"bla-bla-bla"};
qDebug() //Prints "true"
<< QRegularExpression("bla-*").match(list[0]).hasMatch();
qDebug() //Prints "-1", but I want it was "0" here
<< list.indexOf(QRegularExpression("bla-*"));
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)