Е
29 жовтня 2019 р. 14:01

Как в PyQt5 через Qt Designer поменять иконку программы в панели задач компьютера и можно ли запустить программу написанную на python на компьютере без среды разработки для данного языка?

Добрый день! Не подскажите как в PyQt5 через Qt Designer поменять иконку программы в панели задач компьютера и можно ли запустить программу написанную на python на компьютере без среды разработки для данного языка?

2

Вам це подобається? Поділіться в соціальних мережах!

13
Evgenii Legotckoi
  • 29 жовтня 2019 р. 14:04

Добрый день.

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

    Е
    • 29 жовтня 2019 р. 14:06

    Под Windows 7

      Evgenii Legotckoi
      • 29 жовтня 2019 р. 14:20

      Не знаю, насчёт дизайнера, но вы пробовали в коде использовать setWindowIcon?

      Ещё я бы погуглил про использование RC_ICONS в PyQt5, очень хорошо бы погуглил, поскольку в первых ссылках я не нашёл адекватной информации об этом.

        Е
        • 29 жовтня 2019 р. 14:24

        Пробывал, пишет: ModuleNotFoundError: No module named 'ikona_rc', хотя он лежит в папке проекта

          Вам нужно скомпилировать ресурсы, как внешние ресурсы. Думаю, что PyQt5 не компилирует их автоматически.

          pyrcc5 ikona.qrc -o ikona_rc.py

            Е
            • 29 жовтня 2019 р. 14:35

            Опять не хочет(

              Вот более полный вариант подключения ресурсов в PyQt5

              генерируем внешний ресурс из файла ресурсов

              pyrcc5 -o resources.py resources.qrc

              импортируем

              import resources
              

              Чтобы использовать ресурс в своем коде, вы должны использовать префикс ":/":

              Пример. Должно работать примерно таким образом.

              from PyQt5.QtCore import *
              from PyQt5.QtGui import *
              
              import resources
              
              pixmap = QPixamp(":/newPrefix/download.jpeg")
              

              То есть нужно сначала скомпилировать ресурсник, а потом подключить его в проекте.

                Е
                • 29 жовтня 2019 р. 15:32

                Этот процесс автоматически прописывает Qt Designer, но иконка меняется только на самой форме программы, в панели задач иконка остается питоновской. Видимо лучше на это забить))

                  Ясно, надо искать тогда в направлении RC_ICONS. Эта штука при компиляции в Qt/C++ добавляет иконку в бинарник, она и отображается в панели задач.
                  Так что остаётся искать решение в этом направлении и зачитывать документацию на PyQt5 до дыр.

                    Е
                    • 29 жовтня 2019 р. 15:41

                    Согласен с Вами Евгений, может получится через бинарники, попробую

                      Evgenii Legotckoi
                      • 29 жовтня 2019 р. 15:46
                      • (відредаговано)

                      я не совсем это имел ввиду. Дело в том, что иконка приложения сама по себе не добавляется в ресурсный файл. Она туда внедряется на этапе копиляции. При этом для Windows в pro файл прописывается директива RC_ICONS

                      win32: RC_ICONS = $$PWD/images/myappico.ico
                      

                      Поэтому иконка и отображается в панели задач. Я вообще не уверен, что в PyQt5 это решено каким-то адекватным способом. Да и в интернете не так много информации на эту тему.

                      Это платформозависимый функционал.

                        Е
                        • 01 листопада 2019 р. 17:49

                        Оказалось что ответ весьма прост)): в командной строке в директории проекта набираем:

                        pyinstaller -w -F -i "C:\Dir\ikona.ico" my_project.py
                        

                        Флаг -w глушит консоль, -F упаковывает все в exe - файл, -i добавляет иконку

                          Evgenii Legotckoi
                          • 01 листопада 2019 р. 17:54

                          Ну вот. Оказалось, что это решается упаковкой проекта в бинарник средствами самого Python

                            Коментарі

                            Only authorized users can post comments.
                            Please, Log in or Sign up