2015-11-05 5 views
0

У меня есть диск, обозначенный как «Локальные данные», установленный на «/ media/Local Data». И моя директория программы также находится в «/ media/Local Data/Programming». Я хотел бы установить «Локальные данные» как корневой путь QFileSystemModel. Я не могу найти способ сделать это.Как QFileSystemModel setRootPath для другого диска на linux

Вот мой код:

QFileSystemModel* model = new QFileSystemModel; 
model->setRootPath("/media/Local Data"); 

QTreeView tree; 
tree.setRootIndex(model->index("/media/Local Data"); 
tree.setModel(model); 
qDebug() << QDir::currentPath(); 
// "/media/Local Data/Files/Programming/C++/build-FileSystemModel-Desktop_Qt_5_5_1_GCC_64bit-Debug" 

tree.setMinimumSize(900,500); 
tree.show(); 

Я получаю ошибку QAbstractItemView::setRootIndex failed : index must be from the currently set model.

Когда я запускаю программу, она всегда дает мне корень «/» в качестве корневого пути.

Как я могу это достичь?

ответ

0

Эта ошибка не связана с QFileSystemModel. Вы не задали модель для представления. Попробуйте это (непроверено).

QFileSystemModel* model = new QFileSystemModel; 
model->setRootPath("/media/Local Data"); 

QTreeView* tree = new QTreeView; 
tree->setModel(model); 
tree->setRootIndex(tree->model()->index(QDir::currentPath())); 
+0

Ох. Я сделал setModel просто не показан в моем вопросе. Я отредактирую его. – tom

+0

Я обнаружил, что я сделал неправильно. 'setModel()' необходимо выполнить до 'setRootIndex()' – tom

 Смежные вопросы

  • Нет связанных вопросов^_^