.иконки 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
!