2
A
回答
3
QStringListModel *model;
// Create model
model = new QStringListModel(this);
QStringList stringList;
// open the file
QFile textFile("/<FullPath>/<fileName>");
if(!textFile.open(QIODevice::ReadOnly)) {
QMessageBox::information(0,"Error",textFile.errorString());
}
// teststream to read from file
QTextStream textStream(&textFile);
while (true)
{
QString line = textStream.readLine();
if (line.isNull())
break;
else
stringList.append(line); // populate the stringlist
}
// Populate the model
model->setStringList(stringList);
// Glue model and view together
ui->listView->setModel(model);
// if you want to add additional feature to listview.
ui->listView->
setEditTriggers(QAbstractItemView::AnyKeyPressed |
QAbstractItemView::DoubleClicked);
1
您需要逐行读取文件,并添加到QStringList,然后添加到listView中。
QStringList *allLines = new QStringList(); //Your list for lines from the file.
allLines->clear();
QStringListModel *linesModel = new QStringListModel(*allLines, NULL); //Your model to set to the view.
QFile file("/path/to/yourFileName.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
while (!file.atEnd()) {
QByteArray line = file.readLine(); //Lines are read as QByteArray.
const char *line_c = line.data(); //convert to const char*
QString line_str = QString(QLatin1String(line_c)); //And finally convert to QString
allLines->append(line_str); //Add to the list
}
linesModel->setStringList(*allLines); //Set your model's list your stringlist
listView->setModel(linesModel); //set model of your listView linesModel. You need to use your listView's name, which might be ui->listView.
+0
你应该避免不必要的指针。没有理由在堆上初始化'allLines'。自动变量在这里会更有意义。 – thuga 2015-02-10 07:48:37
+0
@thuga是的,你说得对。 – 2015-02-10 16:46:17
相关问题
- 1. 从XML文件填充ListView
- 2. 如何使用填充文本输入填充其容器
- 3. 用主文本框内容自动填充文本框
- 4. 如何从文本文件填充JComboBox?
- 5. 如何在android中使用“动态”视频文件填充listview?
- 6. 从文件填充文本框
- 7. 如何将ListView内容保存到文本文件?
- 8. 渐变填充的内容HTML中的可编辑文本
- 9. 如何填充由QT Designer制作的文本字段?
- 10. 用java填充文本文件表
- 11. 如何用Loader填充ListView?
- 12. 从XML文件填充datagrid或listview
- 13. ListView将不会填充(来自文件)
- 14. CSS:填充父容器的文本框
- 15. 如何将一个listview的内容保存到android中的文本文件?
- 16. 如何从文本文件中的单词填充ArrayList?
- 17. iPhone - 用压缩的plist文件的内容填充数组
- 18. 如何将零填入文件内容?
- 19. 如何以文本文件格式保存Sdcard中的json listview内容?
- 20. UIWebView -stringByEvaluatingJavaScriptFromString:在iFrame内容中填充文本框?
- 21. 如何从自己的sqlite文件填充listview?
- 22. 如何使用插件填充crm中的多行文本框
- 23. 如何过滤数据库内容以填充ListView?
- 24. 如何在Python中擦除文本文件的文件内容?
- 25. 如何从绘制的文本中设置文本的填充?
- 26. 如何使用Qt获取文件内部文本的值?
- 27. 按钮内部的文本填充
- 28. 减少按钮内的文本填充
- 29. 如何用文本文件项填充组合框!
- 30. vt.net,如何用文本文件填充组合框?
你能读懂你的vocabluaries成'QStringList'并使用['QStringListModel'(http://qt-project.org/doc/qt-4.8/qstringlistmodel.html)。 – thuga 2015-02-09 11:34:57