E
Evgenij_Kanusovskij@1981Oct. 29, 2019, 4:01 a.m.

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

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

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
13

Добрый день.

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

E

Под Windows 7

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

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

E

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

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

pyrcc5 ikona.qrc -o ikona_rc.py

E

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

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

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

pyrcc5 -o resources.py resources.qrc

импортируем

import resources

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

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

from PyQt5.QtCore import *
from PyQt5.QtGui import *

import resources

pixmap = QPixamp(":/newPrefix/download.jpeg")

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

E

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

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

E

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

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

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

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

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

E

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

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

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

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

Comments

Only authorized users can post comments.
Please, Log in or Sign up
How to become an author?

Contribute to the evolution of the EVILEG community.

Learn how to become a site author.

Learn it
Donate

Good day, Dear Users!!!

I am Evgenii Legotckoi, developer of EVILEG. And it is my hobby project, which helps to learn programming another programmers and developers

If the site helped you, and you want also support the development of the site, than you can donate by following ways

PayPalYandex.Money
Timeweb

Let me recommend you the excellent hosting on which EVILEG is located.

For many years, Timeweb has been proving his stability.

For projects on Django I recommend VDS hosting

View Hosting
KA

C++ - Тест 003. Условия и циклы

  • Result:78points,
  • Rating points2
R

C++ - Test 002. Constants

  • Result:75points,
  • Rating points2
R

C++ - Test 001. The first program and data types

  • Result:73points,
  • Rating points1
Last comments
V

Django - Tutorial 027. Implementation Google reCAPTCHA

Спасибо. Только использую декоратор не в urls.py а перед views
R

Qt WinAPI - Lesson 001. How to collect all DLL, which used in Qt project?

Вы меня не совсем правильно поняли, но все равно спасибо, принял все к сведению. Все сделал как вы сказали, все отлично работает, еще раз огромнейшее спасибо) Разве что только что были опять про…

Qt WinAPI - Lesson 001. How to collect all DLL, which used in Qt project?

Стоило перед использованием что ли инструкцию прочитать https://www.cyberforum.ru/blogs/131347/blog2457.html "После сборки при запуске требовались dll," Ясное дело стоило задепло…
R
R

Qt WinAPI - Lesson 001. How to collect all DLL, which used in Qt project?

Да, собралось. После сборки при запуске требовались dll, перекинул всю папки bin, plugins(не знаю как можно было сделать более умно). Как я понял в первой строке путь к екзешнику вставляю, втор…
Now discuss on the forum

QML+QtGraphicalEffects

как только я отключаю QtGraphicalEffects в проекте все работает без проблем. п.с. компилятор MSVC2019, Qt5.15(пробовал на 5.13.1 результат тот же)

Не работают слоты/сигналы

и посмотрите работу с потоками в Qt, там подробно описано как передавать данные с одного в потока в другой при помощи сигналов и слотов

Как в Qt в qmenu добавить scrollarea

Вот это наследованный класс меню. Но посути это обычное меню. #pragma once#include <QtWidgets>class TransMenu : public QMenu { Q_OBJECTpublic: TransMenu(QWidget* parent = …

Qt C++ и Python

Красиво/некрасиво - это скорее моё личное отношение. Если есть возможность ограничить количество интсрументов, то лучше ограничить. Но не зацикливайтесь на этом. Если у вас есть скрипты Py…

Qt + OpenGL glDeleteVertexArrays

Я не уверен, поскольку с OpenGL очень мало работал. Но может быть OpenGL контекст виджета нужно переинициализовывать. И ещё виджет стоит удалять через метод deleteLater() а не п…
About
Services
© EVILEG 2015-2020
Recommend hosting TIMEWEB