Как отличить локальные диски?, от cdrom и дисковода |
Здравствуйте, гость ( Вход | Регистрация )
Как отличить локальные диски?, от cdrom и дисковода |
abc |
8.3.2011, 17:08
Сообщение
#1
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
вот я получил QFileInfoList дисков:
QDir::drivers() Хочу убрать cdrom и дисковод из списка. Как их распознать? |
|
|
Авварон |
8.3.2011, 17:31
Сообщение
#2
|
Студент Группа: Участник Сообщений: 99 Регистрация: 26.4.2009 Пользователь №: 709 Спасибо сказали: 14 раз(а) Репутация: 0 |
средствами qt - никак. у мобилитианов есть кривой классик для этого дела. Могу рассказать как на разных ос средствами апи делать
|
|
|
abc |
8.3.2011, 17:50
Сообщение
#3
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
сами qt как-то отличают в QFileSystemModel - ставят разные иконки
расскажи, пожалуйста |
|
|
abc |
8.3.2011, 18:37
Сообщение
#4
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
посмотрите, пожалуйста, исходники класса QFileIconProvider, лежат в
\src\gui\itemviews Там в cpp в теле функции QIcon QFileIconProvider::icon(const QFileInfo &info) const есть запись UINT type = GetDriveType((wchar_t *)info.absoluteFilePath().utf16()); которая открывает путь к заветному switch по типу drive не понимаю, откуда берётся функция GetDriveType и типы drive ВСЁ, последняя правка: включаем # include <qt_windows.h> и работаем так: uint type = GetDriveType((wchar_t *)info.absoluteFilePath().utf16()); //info - это QFileInfo switch (type) { case DRIVE_REMOVABLE: case DRIVE_FIXED: case DRIVE_REMOTE: case DRIVE_CDROM: case DRIVE_RAMDISK: case DRIVE_UNKNOWN: case DRIVE_NO_ROOT_DIR: default: } Работает!! Сообщение отредактировал abc - 8.3.2011, 18:58 |
|
|
Текстовая версия | Сейчас: 18.1.2025, 13:17 |