Получение значка файла исключительно из заданного MIME-типа (сам файл отсутствует) в Qt
Хорошо, я знаю о классе QFileIconProvider
, Я тоже знаю о QMimeType
(а также QMimeDatabase
). Но я удивлен, что не могу найти простую связь между ними.
Поэтому мне нужно получить значок, используемый операционной системой для файлов определенного типа. Обычно это делается так:
QIcon icon = QFileIconProvider().icon(QFileInfo("/path/to/some.file"));
Но что, если я хочу получить значок без ссылки на определенный файл, только для данного типа MIME? Скажем, мое приложение использует вложенные файлы и синхронизирует на нескольких устройствах; на некоторых устройствах прикрепленный файл может отсутствовать, но я знаю MIME-тип этого файла, поэтому я все же хочу, чтобы мое приложение показывало правильный значок файла, используя только информацию о MIME-типе.
В качестве временного решения я обнаружил, что если я передаю несуществующий файл в QFileInfo в приведенной выше строке кода, он получает правильный значок (очевидно, только из расширения этого несуществующего файла), по крайней мере, в Linux. Но этот метод не документирован, и нет гарантии, что он всегда будет работать.
Поэтому мне нужно что-то, что может работать как несуществующий метод QFileIconProvider().icon(QMimeType &)
,