riverbankcomputing python qt4 icons python-2.7 pyqt4

python - riverbankcomputing - PyQt4 establece el icono de la barra de tareas de Windows



qt designer (4)

Estoy trabajando en una aplicación en PyQt4 de Python y no puedo encontrar cómo cambiar el ícono de la barra de tareas. Hice mis archivos .ui en Qt''s Designer, donde puedo cambiar las propiedades de windowIcon . Pero eso no es lo que estoy buscando. Quiero cambiar el aspecto del ícono de la aplicación en la barra de tareas de Windows. Por ahora es el logo de Python en el ícono de una ventana.

Encontré algo de información sobre SO: link pero no me está ayudando mucho.

Lo intenté:

app = QtGui.QApplication([]) app.setWindowIcon(QtGui.QIcon(''chip_icon_normal.png'')) app.exec_()

Pero el icono permanece sin cambios.

Lo que quiero cambiar, mostrando la imagen: (Esto se hace llamando a setWindowIcon en la ventana / diálogo principal, o la aplicación, como se muestra arriba).


Este problema está causado por algunas peculiaridades en cómo se manejan los iconos de la barra de tareas en la plataforma de Windows.

Consulte esta respuesta para obtener detalles, junto con una solución alternativa que utiliza ctypes .


Me parece que el problema puede deberse a la falta de icono con el tamaño correcto. La siguiente configuración funcionó para mí en PyQT4:

# set app icon app_icon = QtGui.QIcon() app_icon.addFile(''gui/icons/16x16.png'', QtCore.QSize(16,16)) app_icon.addFile(''gui/icons/24x24.png'', QtCore.QSize(24,24)) app_icon.addFile(''gui/icons/32x32.png'', QtCore.QSize(32,32)) app_icon.addFile(''gui/icons/48x48.png'', QtCore.QSize(48,48)) app_icon.addFile(''gui/icons/256x256.png'', QtCore.QSize(256,256)) app.setWindowIcon(app_icon)

Tengo un ícono de la barra de tareas en Windows 7 y corrijo íconos en todas las ventanas sin ningún cambio en los archivos ui.


Necesita llamar a setWindowIcon (...) en la ventana, no en la aplicación.

Aquí hay un ejemplo, que funciona para mí:

#!/usr/bin/env python3 import os import sys import subprocess import os.path from PyQt4 import QtGui from PyQt4 import QtCore class MyWin(QtGui.QMainWindow): def __init__(self, parent=None): super(MyWin, self).__init__(parent) self.setWindowTitle("My Window") self.setWindowIcon(QtGui.QIcon(''test_icon.png'')) self.show() def main(args): app = QtGui.QApplication([]) ww= MyWin() sys.exit(app.exec_()) if __name__ == ''__main__'': main(sys.argv[1:])


Para mí, el siguiente código funciona tanto para cambiar el icono de la barra de tareas como el de la ventana

win.setWindowIcon(QIcon(''logo.png''))