Russian Qt Forum

Qt => Model-View (MV) => Тема начата: billy4685 от Декабрь 07, 2015, 16:06



Название: Как с помощью QFileSystemModel в QTreeView отобразить содержание каталогов USB?
Отправлено: billy4685 от Декабрь 07, 2015, 16:06
Здравствуйте, господа форумчане. Начал я разбираться с использованием моделей в Qt. Отобразить в QTreeView содержание главного каталога получилось без проблем.
Код:
	QTreeView *view = new QTreeView(this);
QFileSystemModel *model = new QFileSystemModel(this);
model->setRootPath("");

view->setModel(model);
view->setAnimated(false);
view->setIndentation(20);
view->setSortingEnabled(true);
view->setWindowTitle(QObject::tr("Dir View"));
view->resize(400, 150);
view->show();


Название: Re: Как с помощью QFileSystemModel в QTreeView отобразить содержание каталогов USB?
Отправлено: billy4685 от Декабрь 07, 2015, 16:07
А вот как отобразить содержание только определенного каталога? ну или к примеру USB флешки?
Что-то никак не найду.


Название: Re: Как с помощью QFileSystemModel в QTreeView отобразить содержание каталогов USB?
Отправлено: kambala от Декабрь 07, 2015, 16:50
model->setRootPath(<нужный путь>);


Название: Re: Как с помощью QFileSystemModel в QTreeView отобразить содержание каталогов USB?
Отправлено: billy4685 от Декабрь 08, 2015, 09:18
model->setRootPath(<нужный путь>);
Делал вот так:
model->setRootPath("O:\\");
но результат не дало, показывает все диски, просто что выделяет саму флешку.


Название: Re: Как с помощью QFileSystemModel в QTreeView отобразить содержание каталогов USB?
Отправлено: gil9red от Декабрь 08, 2015, 10:19
model->setRootPath(<нужный путь>);
Делал вот так:
model->setRootPath("O:\\");
но результат не дало, показывает все диски, просто что выделяет саму флешку.

model = QFileSystemModel()
index = model.setRootPath("C:\\")

view.setModel(model)
view.setRootIndex(index)


Название: Re: Как с помощью QFileSystemModel в QTreeView отобразить содержание каталогов USB?
Отправлено: billy4685 от Декабрь 10, 2015, 18:10
model = QFileSystemModel()
index = model.setRootPath("C:\\")

view.setModel(model)
view.setRootIndex(index)
gil9red, большое спасибо) работает) Вы мне очень помогли)


Название: Re: Как с помощью QFileSystemModel в QTreeView отобразить содержание каталогов USB?
Отправлено: gil9red от Декабрь 11, 2015, 08:10
model = QFileSystemModel()
index = model.setRootPath("C:\\")

view.setModel(model)
view.setRootIndex(index)
gil9red, большое спасибо) работает) Вы мне очень помогли)

 :)


Название: Re: Как с помощью QFileSystemModel в QTreeView отобразить содержание каталогов USB?
Отправлено: billy4685 от Декабрь 11, 2015, 12:16
А как к примеру подгрузить список файлов в QFileSystemModel из примонтированной флешки не зная ее пути (пусть это будет первая примонтированная)? что нужно в данном случаи писать в setRootPath("")?

 


Название: Re: Как с помощью QFileSystemModel в QTreeView отобразить содержание каталогов USB?
Отправлено: billy4685 от Декабрь 16, 2015, 12:49
Вот нашел кусок кода, который походу определяет был ли подключен второй физический диск. Но вот пока не знаю как получить его метку.
HANDLE hDevice = CreateFileA("\\\\.\\PhysicalDrive1", GENERIC_WRITE | GENERIC_READ ,
       FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);

   if(hDevice == INVALID_HANDLE_VALUE)
   {
      qDebug() << "\nhDevice - INVALID_HANDLE_VALUE";
   }
else
{
      qDebug() << "\n hDevice handle ok";
}


Название: Re: Как с помощью QFileSystemModel в QTreeView отобразить содержание каталогов USB?
Отправлено: billy4685 от Декабрь 22, 2015, 10:05
А как очистить содержимое QFileSystemModel или же QTreeView? По форумах что-то ничего не нахожу( Нужно чтобы QTreeView очищался.