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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Получить иконку приложения  (Прочитано 7473 раз)
onlik
Гость
« : Ноябрь 27, 2009, 01:27 »

Привет,

подскажите, пожалуйста, как можно получить иконку какого-нить приложения, скажем C:\windows\notepad.exe

Заранее благодарен!
Записан
spectre71
Гость
« Ответ #1 : Ноябрь 27, 2009, 01:34 »

Привет,
подскажите, пожалуйста, как можно получить иконку какого-нить приложения, скажем C:\windows\notepad.exe
Заранее благодарен!

А какое это имеет отношение к QT?
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #2 : Ноябрь 27, 2009, 01:34 »

ExtractIcon
Записан
onlik
Гость
« Ответ #3 : Ноябрь 27, 2009, 01:45 »

Спасибо за ответ, а не подскажите как ее именно в программе на QT отобразить, загрузить куда-нить, в QBitmap, QIcon.
Записан
uriel
Гость
« Ответ #4 : Ноябрь 27, 2009, 08:53 »

Смотрите QFileIconProvider.
Записан
spectre71
Гость
« Ответ #5 : Ноябрь 27, 2009, 10:26 »

Смотрите QFileIconProvider.

Ты сначала вопрос внимательно прочитай, а потом уже отвечай?
Записан
Rcus
Гость
« Ответ #6 : Ноябрь 27, 2009, 10:44 »

Ты сначала вопрос внимательно прочитай, а потом уже отвечай?
Простите, может я что-то не понял (или вопросы разучился читать), но разве совет использовать QFileIconProvider не является правильным ответом?
Записан
spectre71
Гость
« Ответ #7 : Ноябрь 27, 2009, 10:51 »

Ты сначала вопрос внимательно прочитай, а потом уже отвечай?
Простите, может я что-то не понял (или вопросы разучился читать), но разве совет использовать QFileIconProvider не является правильным ответом?

Как можно получить иконку какого-нить приложения, а не иконку типа файла для QDirModel.
Цитировать
The QFileIconProvider class provides file icons for the QDirModel class.
Посмотри что он возвращает.

Правильный ответ уже был дан  -  ExtractIcon
Записан
Rcus
Гость
« Ответ #8 : Ноябрь 27, 2009, 11:13 »

Как можно получить иконку какого-нить приложения, а не иконку типа файла для QDirModel.
Ну я потому и не понял вашего комментария:
$QTDIR/src/gui/itemviews/qfileiconprovider.cpp
QIcon QFileIconProvider::icon(const QFileInfo &info) const
QIcon QFileIconProviderPrivate::getWinIcon(const QFileInfo &fileInfo) const
В конце приводит к вызовам SHGetFileInfo/QPixmap::fromWinHICON
Записан
uriel
Гость
« Ответ #9 : Ноябрь 27, 2009, 11:14 »

Смотрите QFileIconProvider.

Ты сначала вопрос внимательно прочитай, а потом уже отвечай?
Знаете, я не очень люблю когда меня вот просто так пытаются в чём-то обвинить.
Я прекрасно понимаю, что пишу и просто так абы что говорить не стал.
Код
C++ (Qt)
#include <QApplication>
#include <QFileInfo>
#include <QFileIconProvider>
#include <QLabel>
//
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
 
QFileIconProvider provider;
QFileInfo notepad("c:/windows/notepad.exe");
 
QLabel lbl;
lbl.setPixmap(provider.icon(notepad).pixmap(32, 32));
lbl.show();
 
return app.exec();
}
 
Записан
spectre71
Гость
« Ответ #10 : Ноябрь 27, 2009, 12:20 »

Смотрите QFileIconProvider.

Ты сначала вопрос внимательно прочитай, а потом уже отвечай?
Знаете, я не очень люблю когда меня вот просто так пытаются в чём-то обвинить.
Я прекрасно понимаю, что пишу и просто так абы что говорить не стал.
Код
C++ (Qt)
#include <QApplication>
#include <QFileInfo>
#include <QFileIconProvider>
#include <QLabel>
//
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
 
QFileIconProvider provider;
QFileInfo notepad("c:/windows/notepad.exe");
 
QLabel lbl;
lbl.setPixmap(provider.icon(notepad).pixmap(32, 32));
lbl.show();
 
return app.exec();
}
 

К сожалению, дофига народу пишет что попало Улыбающийся

Извини, Ты прав!
Поскольку мне было интересно, то первое что я сделал увдев твое сообщение посмотрел QFileIconProvider в Assistant.
Видимо дока для данного класса мягко сказать убогая. Ничто в ней не указывает на то что он делает ExtractIcon.
Записан
uriel
Гость
« Ответ #11 : Ноябрь 27, 2009, 12:36 »

К сожалению, дофига народу пишет что попало Улыбающийся

Извини, Ты прав!
Поскольку мне было интересно, то первое что я сделал увдев твое сообщение посмотрел QFileIconProvider в Assistant.
Видимо дока для данного класса мягко сказать убогая. Ничто в ней не указывает на то что он делает ExtractIcon.
Да это нормальное явление на самом деле. Можно сказать суровая реальность. Улыбающийся
Меня просто в своё время смутил тот факт, что он принимает QFileInfo, а он вроде как уникальный для каждого файла, а не только для расширения. Оказалось, действительно сработало.
А дока там и правда ужасная. Нет, например, упоминания о том, что внутри он на самом деле держит кэш уже полученных иконок. Троллям писал, но ответа пока нет.
Записан
onlik
Гость
« Ответ #12 : Ноябрь 27, 2009, 13:26 »

uriel, спасибо большое за ответ, очень помогли!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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