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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как с помощью QFileSystemModel в QTreeView отобразить содержание каталогов USB?  (Прочитано 7045 раз)
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« : Декабрь 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();
Записан
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #1 : Декабрь 07, 2015, 16:07 »

А вот как отобразить содержание только определенного каталога? ну или к примеру USB флешки?
Что-то никак не найду.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #2 : Декабрь 07, 2015, 16:50 »

model->setRootPath(<нужный путь>);
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #3 : Декабрь 08, 2015, 09:18 »

model->setRootPath(<нужный путь>);
Делал вот так:
model->setRootPath("O:\\");
но результат не дало, показывает все диски, просто что выделяет саму флешку.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #4 : Декабрь 08, 2015, 10:19 »

model->setRootPath(<нужный путь>);
Делал вот так:
model->setRootPath("O:\\");
но результат не дало, показывает все диски, просто что выделяет саму флешку.

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

view.setModel(model)
view.setRootIndex(index)
Записан

billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #5 : Декабрь 10, 2015, 18:10 »

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

view.setModel(model)
view.setRootIndex(index)
gil9red, большое спасибо) работает) Вы мне очень помогли)
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #6 : Декабрь 11, 2015, 08:10 »

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

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

 Улыбающийся
Записан

billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #7 : Декабрь 11, 2015, 12:16 »

А как к примеру подгрузить список файлов в QFileSystemModel из примонтированной флешки не зная ее пути (пусть это будет первая примонтированная)? что нужно в данном случаи писать в setRootPath("")?

 
« Последнее редактирование: Декабрь 11, 2015, 13:13 от billy4685 » Записан
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #8 : Декабрь 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";
}
Записан
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #9 : Декабрь 22, 2015, 10:05 »

А как очистить содержимое QFileSystemModel или же QTreeView? По форумах что-то ничего не нахожу( Нужно чтобы QTreeView очищался.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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