2017-09-18 1 views
0

Je développe une application avec QT et ma fenêtre est créée avec QDialog. Lorsque l'état d'application est changé, je dois changer la barre des tâches de l'application icône:L'icône de la barre des tâches de l'application Windows est définie par défaut

parentWidget()->setWindowIcon(QIcon(":/new.ico"));

Cependant, dans l'exécution, si vous avez modifié l'icône avec le code ci-dessus et puis faire un clic droit sur l'icône de votre application (ou l'épingler à la barre des tâches), il sera remplacé par celui par défaut (je suspecte l'icône exécutable).

J'ai trouvé si mon icône est réinitialisé à celui par défaut, je peux l'épingler à la barre des tâches, puis déconnecter et l'icône sera réglée sur le «nouveau». Existe-t-il un moyen d'éviter cela et de garder l'icône toujours comme je veux?

+0

Avez-vous utilisé ceci dans le fichier '.pro':' win32: RC_ICONS = image.ico'? – aghilpro

+1

que diriez-vous de 'QApplication :: setWindowIcon (const QIcon &)' l'avez-vous essayé. Je ne suis pas à Windows pour vérifier ce comportement et je pense que c'est la faille Windows – saeed

+0

@aghilpro, Oui cette icône est également définie dans le fichier pro. Mais c'est l'icône du fichier exécutable. J'essaye seulement de placer l'icône de barre des tâches de la fenêtre. – Anton

Répondre

0

Tout d'abord, faites .rc. Par exemple: Test.rc

Dans ce fichier .rc écrire IDI_ICON1 ICON DISCARDABLE "YourIconName.ico"

Mettez l'icône et le fichier rc dans votre fichier de projet

insérer ce code en vous .pro fichier

win32: 
{ 
    RC_FILE = test.rc 
} 

C'est tout.

Vous pouvez définir l'icône de la barre des tâches Windows!

+0

s'il vous plaît lire attentivement. J'ai l'icône par défaut. Je veux changer l'icône par défaut pour le nouveau et vice-versa en fonction de l'état de l'application. J'ai le fichier rc et j'ai cette ligne. Cependant, il ne définit que l'icône exécutable. – Anton