Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Problème d'insertion d'icône  (Lu 8690 fois)

0 Membres et 5 Invités sur ce sujet

Apophis

  • Newbie
  • *
  • Messages: 16
  • return 0 ;
    • Voir le profil
    • E-mail
Problème d'insertion d'icône
« le: Août 07, 2013, 08:10:30 pm »
Bonjour,
j'utilise la SFML 2.0 depuis peu et j'ai un soucis pour afficher une icône à ma fenêtre : l'icône reste celle par défaut mais aucun message d'erreur n'apparaît, ni dans le terminal ni dans une autre fenêtre. Voici mon code :
RenderWindow window ;
   
    sf::Image icon;
 
    if(!icon.loadFromFile("ressources/icone.png"))
        EXIT_FAILURE;
 
    window.setIcon(32,32,icon.getPixelsPtr());

Quelqu'un sait-il ce qui ne fonctionne pas s'il vous plaît ?  :-\
P.S. : Je suis sous Linux : Kubuntu 13.04.
Vis comme si tu devais mourir demain, mais apprends comme si tu devais vivre éternellement...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème d'insertion d'icône
« Réponse #1 le: Août 07, 2013, 08:13:41 pm »
Il faut changer l'icône après avoir créé la fenêtre.
Laurent Gomila - SFML developer

Apophis

  • Newbie
  • *
  • Messages: 16
  • return 0 ;
    • Voir le profil
    • E-mail
Re : Problème d'insertion d'icône
« Réponse #2 le: Août 07, 2013, 08:18:37 pm »
Merci de cette réponse rapide mais excusez-moi, une erreur de ma part lors de la copie du code : la fenêtre est bien créée au moment de l'instanciation de l'objet RenderWindow : le véritable code est en fait :

RenderWindow window(sf::VideoMode(800, 608), "Titre") ;
   
    sf::Image icon;
 
    if(!icon.loadFromFile("ressources/icone.png"))
        EXIT_FAILURE;
 
    window.setIcon(32,32,icon.getPixelsPtr());

Qu'est-ce qui ne va pas alors ? :-[
Vis comme si tu devais mourir demain, mais apprends comme si tu devais vivre éternellement...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème d'insertion d'icône
« Réponse #3 le: Août 07, 2013, 08:25:01 pm »
Ton image fait bien 32x32 ?
Laurent Gomila - SFML developer

Apophis

  • Newbie
  • *
  • Messages: 16
  • return 0 ;
    • Voir le profil
    • E-mail
Re : Problème d'insertion d'icône
« Réponse #4 le: Août 07, 2013, 08:28:44 pm »
Oui, je viens de vérifier avec Gimp : et elle est bien au format PNG, je la joins.
Vis comme si tu devais mourir demain, mais apprends comme si tu devais vivre éternellement...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème d'insertion d'icône
« Réponse #5 le: Août 07, 2013, 08:51:56 pm »
Tout a l'air bon alors.

Peux-tu nous montrer un code complet minimal qui reproduit le problème ?
Laurent Gomila - SFML developer

Apophis

  • Newbie
  • *
  • Messages: 16
  • return 0 ;
    • Voir le profil
    • E-mail
Re : Problème d'insertion d'icône
« Réponse #6 le: Août 07, 2013, 09:09:32 pm »
Voici un code qui, chez moi, a le même effet : l'icône reste celle par défaut (celle de X, étant sous KDE) mais il n'y a pas de message d'erreur dans le terminal.

#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(800, 600), "fenetre SFML");
    sf::Image icon;
 
    if(!icon.loadFromFile("icone.png"))
        exit(EXIT_FAILURE);
 
    window.setIcon(32,32,icon.getPixelsPtr());

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();

          window.display() ;
           
        }
    }

    return 0;
}

j'ai bien déplacé cette fois-ci le fichier "icone.png" dans le même répertoire que l'exécutable.
Au passage : Merci beaucoup de prêter attention à mon problème  ;D

NOTE : J'utilise la SFML version 2.0 et non pas 2.1 : ceci peut-il avoir un rapport avec l'erreur ?
« Modifié: Août 07, 2013, 09:15:29 pm par Apophis »
Vis comme si tu devais mourir demain, mais apprends comme si tu devais vivre éternellement...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème d'insertion d'icône
« Réponse #7 le: Août 07, 2013, 10:07:05 pm »
Chez moi ce code fonctionne, donc c'est sûrement l'implémentation Linux qui foire chez toi.

Il y a quelque chose de particulier au niveau de ton window manager ? Est-ce que tu utilises un compositeur ? Une quelconque surcouche ?

Citer
NOTE : J'utilise la SFML version 2.0 et non pas 2.1 : ceci peut-il avoir un rapport avec l'erreur ?
Non, absolument pas.
Laurent Gomila - SFML developer

Apophis

  • Newbie
  • *
  • Messages: 16
  • return 0 ;
    • Voir le profil
    • E-mail
Re : Problème d'insertion d'icône
« Réponse #8 le: Août 08, 2013, 11:41:24 am »
Je vous avoue ne pas savoir ce qu'est un compositeur ou une surcouche, mais peut-être que c'est KDE : en effet j'ai récemment changé de Ubuntu vers Kubuntu... et il assigne une l'icone X par défaut aux fenêtres sans icônes...
Vis comme si tu devais mourir demain, mais apprends comme si tu devais vivre éternellement...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème d'insertion d'icône
« Réponse #9 le: Août 08, 2013, 11:59:56 am »
Un compositeur c'est ça.

Une surcouche c'est une couche par dessus quelque chose :P
En gros, la question c'est de savoir si tu utilises KDE tout seul, ou bien si tu as installé des choses en plus, relatives à la gestion des fenêtres.
Laurent Gomila - SFML developer

Apophis

  • Newbie
  • *
  • Messages: 16
  • return 0 ;
    • Voir le profil
    • E-mail
Re : Problème d'insertion d'icône
« Réponse #10 le: Août 08, 2013, 01:31:06 pm »
En effet, j'utilise bien "Kwin" avec KDE  ;D : quel est le problème ?  ??? peut-il être corrigé ? :'(
Vis comme si tu devais mourir demain, mais apprends comme si tu devais vivre éternellement...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème d'insertion d'icône
« Réponse #11 le: Août 08, 2013, 01:37:54 pm »
Citer
quel est le problème ?
En général ça fout la merde. C'est tout ce que je sais ;D

Citer
peut-il être corrigé ?
Déjà, essaye en désactivant Kwin, pour voir si c'est bien à cause de lui que ça ne fonctionne pas. Ensuite... on verra ;)
Laurent Gomila - SFML developer

Apophis

  • Newbie
  • *
  • Messages: 16
  • return 0 ;
    • Voir le profil
    • E-mail
Re : Problème d'insertion d'icône
« Réponse #12 le: Août 08, 2013, 01:40:57 pm »
mais...euh... ça risque pas de poser des problèmes si je les désactive ??  :-[
Vis comme si tu devais mourir demain, mais apprends comme si tu devais vivre éternellement...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème d'insertion d'icône
« Réponse #13 le: Août 08, 2013, 01:47:56 pm »
J'utilise très peu Linux, quasiment pas KDE et jamais de compositeur. Donc je ne peux pas t'en dire plus.

Mais quel problème cela pourrait-il poser ? Il y a bien un moyen simple de désactiver temporairement la couche Kwin, non ?

Par exemple : http://fitzcarraldoblog.wordpress.com/2011/09/08/toggle-kwin-compositing-on-and-off-easily-from-your-desktop/
Laurent Gomila - SFML developer

Apophis

  • Newbie
  • *
  • Messages: 16
  • return 0 ;
    • Voir le profil
    • E-mail
Re : Problème d'insertion d'icône
« Réponse #14 le: Août 08, 2013, 02:00:54 pm »
J'ai fait un test, en repassant sous le gestionnaire de bureau Unity, avec Ubuntu standard, donc sans Kwin (dont j'ignorais l'existence avant ce problème  ::) ) et l'icône s'est affichée correctement. Cet aspect de la SFML est-il donc complètement incompatible avec Kwin ou peut-on utiliser un stratagème pour que ça puisse marcher tout de même ?  :-\
Vis comme si tu devais mourir demain, mais apprends comme si tu devais vivre éternellement...