Qt:将我的模型数据与QListView链接

时间:2014-07-28 12:12:25

标签: c++ qt

我正在编写我的第一个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()

1 个答案:

答案 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。