我正在编写我的第一个Qt项目(所以我对环境不熟悉)并且我已经使用MVC设计模式构建了这个项目。 它是一个非常基本的笔记管理员/编辑。我有一个班级uiman(" Ui Manager")负责我的UI,以及我打开笔记数据库的功能(这只是一个要打开的文本文件列表)
void uiman::openDBDialog(){
QFileDialog dialog;
dialog.setFileMode(QFileDialog::AnyFile);
dialog.setDirectory("/Users/myuserdir/Desktop");
dialog.setFilter(QDir::Files);
dialog.setWindowTitle("Open File");
dialog.setNameFilter("Textie Notes DB(*.db)");
dialog.exec();
QString pathDB = dialog.selectedFiles().first();
model = new notesModel();
model->setNotesDB(new QString(pathDB.toUtf8().constData()));
refreshAll();
}
到目前为止,这么好。我采用数据库的路径并将其提供给我的模型,现在应该管理其余的模型。
现在,refreshAll()
函数应该打开我打开的列表并在我的QListView中显示它们,但我无法解析文件并使用clear()
和{{1}随时附加项目与QListWidget不同。那么,我如何从我的文件中构建一个名称向量(我想)并将它们提供给我的QListView?
很抱歉,如果我不清楚,但官方文档还不够清楚。
编辑:这是我的模型,nodesmodel,这是代码。
append()
答案 0 :(得分:0)
正如您已经注意到的那样,您不会在查看器窗口小部件中添加/删除数据,这在模型中完成。
您可以使用setModel()方法设置模型。
如果要显示简单的QString列表,则可以使用:
QStringList strings;
strings << "String 1" << "String 2" << "String 3";
model = new QStringListModel(strings, parent);
view->setModel(model);
// model is managed by parent, and will be deleted when parent is deleted.
// If you create multiple models you might consider other memory management strategy
要阅读文本文件并将其行存储在QStringList中,请参阅this answer。