.иконки ico не отображаются на Windows

я следовал Система Ресурсов Qt руководство и the .значки ico появляются в Linux.

значки не отображаются в Windows, когда я пытаюсь запустить приложение из Qt Creator.

Я подозреваемый проблема плагина на основе Qt / C++: значки не отображаются при запуске программы под windows O. S но я не смог понять, что делать из руководства как создать Qt Плагины.

это проблема плагина или почему значки не отображаются в Windows?

если это проблема плагина: как сказать моему приложению, где найти qico.dll файлы?


детали окружающей среды:

работает на: Kubuntu 12.04 LTS, Qt Creator 2.4.1 и Qt 4.7.4 (64 бит)

сбой: Windows XP SP2 32 бит, Qt Creator 2.4.1 и Qt 4.7.4 (32 бит)

Everyting по умолчанию (как установлено из коробки), я не возился с настройками.

ресурсы.qrc

<!DOCTYPE RCC><RCC version="1.0">
    <qresource>
        <file>images/spreadsheet.ico</file>
    </qresource>
</RCC>

также пробовал с <qresource prefix="/">.

из applicaton.pro

RESOURCES += 
    resources.qrc

OTHER_FILES += 
    images/spreadsheet.ico

в соответствующий исходный файл

QIcon(":/images/spreadsheet.ico")

Я также попытался, как написано в развертывание приложения в Windows

QDir plugins(QCoreApplication::applicationDirPath()+"/plugins");

qDebug() << "Plugin directory" << plugins.absolutePath() << "found?" << plugins.exists();

app.addLibraryPath(plugins.absolutePath());

С qico.dll в каталоге плагинов. Это приложение печатает, что каталог плагинов существует, но значки по-прежнему не отображаются.

повторяю: он работает на Linux.

2 ответов


для будущих посетителей google: вы можете прочитать комментарии под вопросом, потому что именно здесь родился этот ответ.

Итак, проблема в том, что ico формат не поддерживается QIcon по умолчанию, и для этого вам нужен плагин. В таких случаях QImageReader::supportedImageFormats() функция, которая перечисляет форматы, поддерживаемые QIcon, может быть полезна.

если ваш формат не поддерживается, вы можете попробовать скопировать imageformats папка из Qt plugins каталог в каталог, где ваш исполняемый файл находится. Если ваше приложение лежит в c:\myapp папка, которую вы должны иметь


просто чтобы уточнить QCoreApplication::addLibraryPath-вещь:

нужно сделать "Плагины"папка доступна. Не подпапки!

вот способ для Python/PySide пользователям использовать пакет PySide. Вы также можете просто использовать QtGui.QApplication экземпляра,app здесь, Если у вас уже есть:

pyside_plugin_path = os.path.join(sys.modules['PySide'].__path__[0], 'plugins')
app.addLibraryPath(pyside_plugin_path)

и спасибо уже doc!