无法在 Linux 中的 QFileSystemModel 的主目录之上显示任何内容

Can't show anything above home directory in QFileSystemModel in Linux

我在Linux下的Qt4.8中有如下代码:

 QFileSystemModel* dir_model = new QFileSystemModel;
 dir_model->setRootPath("/usr");
 ui->dir_tree->setModel(dir_model);

树小部件显示的不是“/usr”,而是我的主目录。如果我在我的家上方提供任何内容(例如“/”、“/etc”、“/media”),它总是会显示我的家,而不会在上方显示任何内容。 如果我在家里提供类似“/home/semen/something”的东西,它会毫无问题地准确显示该目录。 我不知道我做错了什么。我应该怎么做才能显示例如“/media/something”?

然后您必须为视图设置根索引。

QFileSystemModel* dir_model = new QFileSystemModel;
QModelIndex rootIndex = dir_model->setRootPath("/usr");
ui->dir_tree->setModel(dir_model);
ui->dir_tree->setRootIndex(rootIndex);  // you are missing this step