2015-12-04 5 views
0

Я следующий код в Qt4.8 под Linux:Не может ничего выше домашней директории в QFileSystemModel шоу в Linux

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

Вместо того чтобы показывать «/ USR» дерево виджет показывает мой домашний каталог. Если я предоставляю что-либо выше моего дома (например, «/», «/ etc», «/ media»), он всегда показывает мой дом и ничего выше. Если я предоставляю что-то внутри своего дома, например «/ home/semen/something», он без проблем показывает именно этот каталог. Я не могу понять, что я делаю неправильно. Что делать, чтобы показать, например, «/ media/something»?

ответ

0

Затем вам необходимо установить индекс корня для представления.

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 
+0

Это работает! Большое спасибо! Интересно, почему эта простая вещь не задокументирована должным образом. – yesint

+0

Это действительно документировано .. см. Пример использования на http://doc.qt.io/qt-5/qfilesystemmodel.html – ramtheconqueror

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