如何使用文本文件中的内容填充Qt ListView
How to populate Qt ListView with content from a text file?
我有一个文本文件,其中包含许多词汇表,每个词汇表都用一行新行分隔。
如何使用文本文件中的词汇表填充Qt ListView?
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);
您需要逐行读取文件,并将其添加到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.
相关文章:
- Qt VTK交互风格的信号到小部件
- QT在错误的班级中寻找空位
- 在c++中用vector填充一个简单的动态数组
- 当处理值更改时,QT双旋转框自动填充箱
- QT-仅用密钥填充QMAP,然后添加每个键的值
- Qt究竟是如何处理字符串的,或者如何生成填充数字
- 简单的颜色填充QCon中的QT
- 101 Qt 样式表边距填充黑客指南在C++。设置填充不起作用
- Qt QLabel setPixmap 不需要的填充
- 如何使用文本文件中的内容填充Qt ListView
- 如何在Qt中绘制由画笔填充的开放曲线
- 在Blackberry Cascades 10(C++、Qt、QML)中,如何在填充字段的情况下调用电子邮件客户端
- (Qt C++)用值填充QMap,同时声明/初始化
- 如何使Qt Widget填充父Widget
- Qt: c++:如何使用QStringList填充QComboBox
- 在Qt中填充表
- 如何在c++ Qt中填充静态QMap的值
- Qt c++表填充空项
- 我怎么能设置填充样式的主窗口在QT
- 我拖放了一个Table View小部件(Qt).如何在填充元素后调整它的大小