Как включить иконки в приложение при использовании Pyinstaller 2.0, Привязок PySide 1.1.2 и Qt 4.8



Как выглядит скрипт
what_it_looks_like



Как должно выглядеть рабочее приложение



Введите описание изображения здесь



Перед публикацией я посмотрел на следующий вопрос и попытался использовать его в качестве руководства, чтобы заставить мой скрипт работать должным образом, но он был маргинальным



PyInstaller не будет загружать образы PyQt в графический интерфейс



Лучшее, что он сделал, это включил мои иконки в результирующую директорию следующим образом



(значки включены изображение здесь)



И следующий
У меня нет я даже не знаю, что он говорит, но я чувствую, что это может решить мою проблему, если бы я знал.
что это было на самом деле делаешь,
связывание файлов данных с PyInstaller (--onefile)



У меня есть rtfm, и большая его часть, к сожалению, идет выше моей головы. Следующий раздел
что, я думаю, относится к моему вопросу



Http://www.pyinstaller.org/wiki/Recipe/CollectDatafiles



Я понятия не имею, как на самом деле имплементировать его в мой файл спецификации



То же самое относится и к следующий
http://www.pyinstaller.org/export/v2.0/project/doc/Manual.html?format=raw#accessing-data-files



Доступ К Файлам Данных



Я сделал следующее и его вариации, включая использование параметра-F



Я переделал свое главное окно.ui-файл с использованием pyside-uic.exe, чтобы преобразовать его в mainGui.py файл



Затем преобразуются значки.разводка в icons_rc.py
используя pyside-rcc.exe, чтобы сделать преобразование



(Примечание: я преобразовал файл после размещения копии exe изначально в папке PySide
в мою C:Python27Scripts папка, которая находится в моем пути, так что я могу вызвать его из любого места)



Я храню свои иконки в папке icons



Чтобы сделать исполняемый файл в моей консоли с помощью Pyinstaller, я использовал следующую команду
чтобы сделать мой файл спецификации



C:Pyinstaller-2.0 > питон utilsMakespec.py --windowed -- name= "16TangoTest" C:Exmake16MainWindowVideo.py



Как только файл спецификации Сделан, я вырезаю его из папки pyinstaller и добавляю оно
в мою папку Exmake



Затем я изменяю его, чтобы включить мою папку icons, используя



Дерево(C:Exmakeicons),
и приложите его, чтобы собрать
в строке выше a. двоичные файлы



Руководство и первый ответ выше указывают на то, что я должен изменить свой файл спецификации так, чтобы pyinstaller видел / находил мои значки, как я сделал на картинке ниже
modified_spec



Все, что он сделал, это включил мои иконки в каталог dist
с приложением все еще не отображая их как на 1-ой картинке выше



Затем я создаю исполняемый файл, запустив в консоли следующее
C:Pyinstaller-2.0 > питон pyinstaller.py C:Exmake16TangoTest.спекуляция
и это делает папку, которую вы видите на первой картинке, иконки включены, но
папка, но не приложение, когда оно запускается

684   2  

2 ответов:

ОК, окончательный ответ, оказывается, что Qt нужен следующий файл qico4.dll может отличаться для Qt5, при создании вашего GUI в QtDesigner он автоматически загружает все необходимые плагины, включая вышеупомянутый плагин изображения, однако при преобразовании файла в скрипт python он не включает его, если вы не добавите следующий код в свой скрипт

#:Loads the qico plug-in lets you use .ico icons
QPlugin = QPluginLoader("qico4.dll")

Приведенный ниже текст может помочь другим в различных ситуациях

Это частичный ответ на мой собственный вопрос, который я хотел бы чтобы поблагодарить Blender выше, короткий ответ заключается в том, что вы должны конвертировать ваши иконки из .Ико на .png файлы, проблема в том, что вы должны сделать весь процесс создания вашего приложения снова, это шаги, которые я предпринял Сначала я зашел в папку, где у меня были мои иконки, и преобразовал их в foom .Ико на .png иконки, я использовал инструмент, который я получил здесь http://www.towofu.net/soft/e-aicon.php я нашел это на этом сайте..Я люблю stackoverflow..кхм

Как только ваши иконки будут преобразованы в .формат png вы должны изменить свой .файл qrc, в котором у вас есть информация о значках и обновляется новая информация о значках, я советую сделать это с нуля; как только у вас появятся новые значки.затем вы открываете файл qrc .ui-файл в QtDesinger и удалите из него все экземпляры ваших старых значков, а затем продолжите обновлять их новыми отформатированными значками, используя файл icon / resource.

После того, как все ваши иконки были обновлены, сохранить его и продолжить преобразование рабочего процесса, я.е конвертируйте ваш ' your_file.ИП' в 'newly_converted_file.py используя pyside-UIC / МСЖД.exe конвертер.

Далее преобразуйте ваши ' иконки.файл qrc " в " icons_rc.py используя pyside-РСС.команда exe

В конце этого процесса вам понадобится только папка icons с вашим .png иконки твой icons_rc.py файл и сценарий вашего приложения.

После этого вы можете продолжать использовать Pyinstaller-2.0 в соответствии с инструкцией..

Как я уже сказал, это частичный ответ, потому что он работает., однако, если бы кто-то другой мог сказать мне или объяснить, как заставить его работать с моим оригиналом .ICO файлы, то я подозреваю, что мне не придется проходить через весь процесс снова

При дальнейших исследованиях эта страница была особенно полезна http://qt-project.org/forums/viewthread/17342

Поэтому я залез в свою папку Qt4. 8 и начал искать qico4.dll и сделал его копию в папке, где находится мой скрипт и приложение работает отлично, если я смогу найти способ включить его внутри моего скрипта, то я думаю, что у меня будет полный ответ, проблема, кажется, с Qt, а не Pyinstaller, кажется, что он должен быть осведомлен о dll для того, чтобы обрабатывать .ICO файлы

Я столкнулся с той же проблемой, что и вы. Все значки, казалось бы, отсутствовали, когда после pyinstaller создал мой исполняемый файл (pyinstaller версии 2.1 и PySide 1.2.1). Однако один из них .был показан png.

Поэтому можно было бы использовать обходной путь .png вместо .ico для вас иконки в PySide, и он будет работать с обеих сторон (python и исполняемый файл).

В качестве примера:

QPushButton(QIcon("./icons/clear.png"),' &Clear',self.app_wgt)

Comments

    Ничего не найдено.