Doc: improve Using Model Indexes in Model View Programming guide
The current example using QFileSystemModel doesn't take into account the asynchronous nature of that model. This puts people on the wrong path on how to use it. This patch improves the snippet as well as the explanation steps. Change-Id: I5c7a3c19aad48847f0b965b5eb69b492d6263f51 Reviewed-by: Paul Wicking <paul.wicking@qt.io>bb10
parent
9567103f38
commit
54d5ca0c27
|
|
@ -79,8 +79,11 @@ int main(int argc, char *argv[])
|
|||
|
||||
//! [0]
|
||||
QFileSystemModel *model = new QFileSystemModel;
|
||||
QModelIndex parentIndex = model->index(QDir::currentPath());
|
||||
int numRows = model->rowCount(parentIndex);
|
||||
connect(model, &QFileSystemModel::directoryLoaded, [model](const QString &directory) {
|
||||
QModelIndex parentIndex = model->index(directory);
|
||||
int numRows = model->rowCount(parentIndex);
|
||||
});
|
||||
model->setRootPath(QDir::currentPath);
|
||||
//! [0]
|
||||
|
||||
//! [1]
|
||||
|
|
|
|||
|
|
@ -465,14 +465,19 @@
|
|||
Although this does not show a normal way of using a model, it demonstrates
|
||||
the conventions used by models when dealing with model indexes.
|
||||
|
||||
QFileSystemModel loading is asynchronous to minimize system resource use.
|
||||
We have to take that into account when dealing with this model.
|
||||
|
||||
We construct a file system model in the following way:
|
||||
|
||||
\snippet simplemodel-use/main.cpp 0
|
||||
|
||||
In this case, we set up a default QFileSystemModel, obtain a parent index
|
||||
using a specific implementation of \l{QFileSystemModel::}{index()}
|
||||
provided by that model, and we count the number of rows in the model using
|
||||
the \l{QFileSystemModel::}{rowCount()} function.
|
||||
In this case, we start by setting up a default QFileSystemModel. We connect
|
||||
it to a lambda, in which we will obtain a parent index using a specific
|
||||
implementation of \l{QFileSystemModel::}{index()} provided by that model.
|
||||
In the lambda, we count the number of rows in the model using the
|
||||
\l{QFileSystemModel::}{rowCount()} function. Finally, we set the root path
|
||||
of the QFileSystemModel so it starts loading data and triggers the lambda.
|
||||
|
||||
For simplicity, we are only interested in the items in the first column
|
||||
of the model. We examine each row in turn, obtaining a model index for
|
||||
|
|
|
|||
Loading…
Reference in New Issue