Russian Qt Forum
Ноябрь 19, 2024, 22:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QFileSystemModel+QListView(переход на каталог выше)  (Прочитано 5785 раз)
koldun90
Крякер
****
Offline Offline

Сообщений: 345


Просмотр профиля
« : Май 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
}
Так вот а как мне сделать чтобы можно было переходить на каталог выше? Потому что когда я перехожу в каталог возврата обратно у меня нет.
вот так должно быть ну примерно

соответственно как бы должен быть переход на каталог выше примерно так
 как вот "папка с .."
« Последнее редактирование: Май 14, 2014, 11:20 от koldun90 » Записан
Termit
Самовар
**
Offline Offline

Сообщений: 144



Просмотр профиля WWW
« Ответ #1 : Май 14, 2014, 11:55 »

Фильтр лучше сделать не QDir::NoDotAndDotDot, а QDir::NoDot и тогда ".." будет отображаться.
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
koldun90
Крякер
****
Offline Offline

Сообщений: 345


Просмотр профиля
« Ответ #2 : Май 14, 2014, 13:28 »

QDir::NoDot странно этот метод вообще не находит. Но вообщем я удалил Dir::NoDotAndDotDot
и вроде стали папки показываться с "." и с ".."
А не подскажете как отсортировать теперь чтобы папки с этими точками находились всегда наверху? А то открываешь папку а там переход на предыдущий каталог то посередине, то в конце находится... А хотелось чтоб он был на самом верху
Записан
Termit
Самовар
**
Offline Offline

Сообщений: 144



Просмотр профиля WWW
« Ответ #3 : Май 14, 2014, 13:58 »

Думаю поможет

void QFileSystemModel::sort ( int column, Qt::SortOrder order = Qt::AscendingOrder ) [virtual]
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
koldun90
Крякер
****
Offline Offline

Сообщений: 345


Просмотр профиля
« Ответ #4 : Май 14, 2014, 15:46 »

Думаю поможет

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

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

Сообщений: 144



Просмотр профиля WWW
« Ответ #5 : Май 14, 2014, 15:56 »

Необходимо указать еще и номер колонки по которой идет сортировка.

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

Код
C++ (Qt)
model1->sort(0, Qt::AscendingOrder)
 
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
koldun90
Крякер
****
Offline Offline

Сообщений: 345


Просмотр профиля
« Ответ #6 : Май 15, 2014, 09:49 »

Необходимо указать еще и номер колонки по которой идет сортировка.

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

Код
C++ (Qt)
model1->sort(0, Qt::AscendingOrder)
 
странно так тоже не работает...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.16 секунд. Запросов: 23.