bob*_*bby 1 c++ qt qlist qlineedit
我有一个QLineEdit*的QList
QList<QLineEdit*> example;
Run Code Online (Sandbox Code Playgroud)
示例将包含100个lineEdits项.
当我尝试保存或加载到文件时,它无法正常保存或加载QList,如果有的话.我得到的数据远远低于预期.
我在这里QList<T>的资源页面上看到<<&>>的操作符是正确的,但我似乎无法使用它们保存到文件中QDataStream
我也尝试将LineEdits中的所有"text()"值复制到一个单独的字符串列表中,但我仍然无法将它们保存到文件中.任何帮助,将不胜感激.
编辑:看起来就是这样做的.这就是我正在阅读它们的方法,是否有一个更简单的方法,或者我几乎涵盖了它?
//memoryAddresses
for(int i = 0; i < 100; i++)
{
QString temp;
loadFile >> temp;
memAddr.at(i)->setText(temp);
}
Run Code Online (Sandbox Code Playgroud)
QList<QLineEdit*> 是一个指针列表(基本上是int,所以如果你把它写到文件中,你就不会获得太多有用的信息.
该text()方法应该做你想要的.
foreach( const QLineEdit* le, example )
{
if( le )
{
ds << le->text();
}
}
Run Code Online (Sandbox Code Playgroud)
请注意displayText和text之间的区别.
回读:
如果您只使用字符串,QTextStream类使用起来会更好(也可以在上面而不是QDataStream上使用...尽管您应该使用相同类型的流进行读写).我目前无法测试此代码,但您可以尝试这样的方法:
QList<QLineEdit*> example;
while(!stream.atEnd())
{
QString str;
stream >> str;
if( stream.isNull() )
break;
QLineEdit* le = new QLineEdit();
le->setText(str);
example.append(le);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4215 次 |
| 最近记录: |