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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: QDirModel или откуда берутся значки файлов и папок?  (Прочитано 11685 раз)
crossly
Гость
« Ответ #15 : Ноябрь 13, 2007, 19:36 »

где ты говоришь ищется...?? Строит глазки
Записан
ритт
Гость
« Ответ #16 : Ноябрь 13, 2007, 22:17 »

присоединяюсь к вячеславу
через file будет честно и надёжно

ежели так не нравится (не хочется ручками работать), под лялихами биндь к кде
Записан
fox
Гость
« Ответ #17 : Ноябрь 13, 2007, 23:56 »

где ты говоришь ищется...?? Строит глазки
Ну если я правильно разобрал исходники то получается следующая вещь (если где то неправ поправьте)
QFileIconProvider содержит в себе QFileIconProviderPrivate в котором содержаться все картинки
Они береться из стиля (это для Linux для Win и Mac так есть специфичные методы кроме этого)
Код:
    
QStyle * style = QApplication::style();
file = style->standardIcon(QStyle::SP_FileIcon);
Далее уже в QStyle из standardIcon() вызывается standardIconImplementation() причем standardIconImplementation() должен быть слотом и вызывается не напрямую а через QMetaObject::invokeMethod() Сами тролтехи в документации это объясняют следующем образом
Цитировать
Warning: Because of binary compatibility constraints, this function is not virtual. If you want to provide your own icons in a QStyle subclass, reimplement the standardIconImplementation() slot in your subclass instead. The standardIcon() function will dynamically detect the slot and call it.
Из standardIconImplementation() дергается
Код:
virtual QPixmap standardPixmap ( StandardPixmap standardPixmap, const QStyleOption * option = 0, const QWidget * widget = 0 ) const = 0
Соответственно standardPixmap() уже определённом стиле
Там уже определены имена файлов откуда брать иконки плюс метод lookupIconTheme() насколько я понял используется для поиска иконок
В стиле QPlastiqueStyle проверяется путь "/usr/share/icons/default.kde"
В QCleanlooksStyle в соответствующем месте для gnome
Далее уже для каждого зарезервированного типа грузиться с иконка из соответствующего файла
Например для стандартной иконке SP_DirIcon в QPlastiqueStyle ищется файл folder.png Для QCleanlooksStyle gnome-fs-directory.png
и тд
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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