Russian Qt Forum

Qt => Вопросы новичков => Тема начата: koldun90 от Май 14, 2014, 10:25



Название: QFileSystemModel+QListView(переход на каталог выше)
Отправлено: koldun90 от Май 14, 2014, 10:25
Приветствую уважаемые форумчане. Я делаю файловый менеджер. Вопрос вот в чем.
Собственно сама модель файловой системы...
Код:
model1=new QFileSystemModel();
 
    model1->setRootPath(QDir::currentPath());
    model1->setFilter(QDir::AllDirs | QDir::Files |QDir::NoDotAndDotDot);
    ui->listview->setModel(model1);

Код:

void MainWindow::on_listView_doubleClicked(QModelIndex index)    // при двойном клике на элемент
{
    QString str=model1->fileInfo(index).absoluteFilePath();
    ui->listView->setRootIndex(model1->index(str)); мы переходим в каталог index
}
Так вот а как мне сделать чтобы можно было переходить на каталог выше? Потому что когда я перехожу в каталог возврата обратно у меня нет.
вот так должно быть ну примерно
(http://s020.radikal.ru/i710/1405/fc/b8a234aa0bf9.png)
соответственно как бы должен быть переход на каталог выше примерно так
(http://s020.radikal.ru/i715/1405/69/1747aabbed6f.png)  как вот "папка с .."


Название: Re: QFileSystemModel+QListView(переход на каталог выше)
Отправлено: Termit от Май 14, 2014, 11:55
Фильтр лучше сделать не QDir::NoDotAndDotDot, а QDir::NoDot и тогда ".." будет отображаться.


Название: Re: QFileSystemModel+QListView(переход на каталог выше)
Отправлено: koldun90 от Май 14, 2014, 13:28
QDir::NoDot странно этот метод вообще не находит. Но вообщем я удалил Dir::NoDotAndDotDot
и вроде стали папки показываться с "." и с ".."
А не подскажете как отсортировать теперь чтобы папки с этими точками находились всегда наверху? А то открываешь папку а там переход на предыдущий каталог то посередине, то в конце находится... А хотелось чтоб он был на самом верху


Название: Re: QFileSystemModel+QListView(переход на каталог выше)
Отправлено: Termit от Май 14, 2014, 13:58
Думаю поможет

void QFileSystemModel::sort ( int column, Qt::SortOrder order = Qt::AscendingOrder ) [virtual]


Название: Re: QFileSystemModel+QListView(переход на каталог выше)
Отправлено: koldun90 от Май 14, 2014, 15:46
Думаю поможет

void QFileSystemModel::sort ( int column, Qt::SortOrder order = Qt::AscendingOrder ) [virtual]

я написал вот так model1->sort(Qt::AscendingOrder)
но все равно папки не отсортировались...


Название: Re: QFileSystemModel+QListView(переход на каталог выше)
Отправлено: Termit от Май 14, 2014, 15:56
Необходимо указать еще и номер колонки по которой идет сортировка.

Подозреваю, что должно быть так:

Код
C++ (Qt)
model1->sort(0, Qt::AscendingOrder)
 


Название: Re: QFileSystemModel+QListView(переход на каталог выше)
Отправлено: koldun90 от Май 15, 2014, 09:49
Необходимо указать еще и номер колонки по которой идет сортировка.

Подозреваю, что должно быть так:

Код
C++ (Qt)
model1->sort(0, Qt::AscendingOrder)
 
странно так тоже не работает...