IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Editer une image, et la rafraichir


Sujet :

Qt

  1. #1
    Membre éclairé
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Points : 812
    Points
    812
    Par défaut Editer une image, et la rafraichir
    Bonjour,
    voilà, j'essaie de faire un mini programme, qui affiche l'image d'une horloge, et dans le programme, on dessine les aiguilles.
    J'utilise donc QPixmap pour charger l'image, que je place, grace à setPixmap dans un QLabel...
    Et ensuite, avec un Timer, je dessine les aiguilles sur l'image.
    Voici le code à l'intérieur du timer dessinant les aiguilles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    QPainter painter;
    	painter.begin(m_image_horloge);
        painter.setPen(Qt::blue);
    	painter.drawLine(x0, y0, xHeure, yHeure);
    	painter.drawLine(x0, y0, xMinute, yMinute);
    	painter.drawLine(x0, y0, xSeconde, ySeconde);
    	painter.end();
    et dans le constructeur de ma fenetre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    m_image_horloge = new QPixmap("horloge.png");
     
    	m_horloge = new QLabel(this);
    	m_horloge->setPixmap(*m_image_horloge);
    Au demarrage, l'horloge s'affiche bien, mais les aiguilles ne sont jamais dessinés, n'apparaissent jamais. Pourtant, on rentre bien dans la fonction du timer chaque seconde...

    Je pense qu'à un moment il faut raffraichir l'image. J'ai beau cherché dans la doc, et google... je ne trouve rien.
    J'ai essayé :
    toujours rien...

    Pouvez vous m'aider?

  2. #2
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Pour commencer, quand tu débutes/debug, il est très important d'utiliser la console (CONFIG += console dans le fichier pro). Ca t'aurait tout de suite dit que les opérations de dessin sur un widget ne sont autorisées que dans le cadre d'un paintEvent.

    Donc... Il te faut réimplémenter le paintEvent, dans lequel tu appelles l'implé de la classe mère, puis tu dessines tes aiguilles. Le slot connecté au timeout ne doit que demander une mise à jour de l'affichage par le biais de update et non repaint (je te renvois à la doc pour comprendre les différences).

  3. #3
    Membre éclairé
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Points : 812
    Points
    812
    Par défaut
    bah non, en fait, je viens de trouver,
    c'est plus simple que ça, il suffisait de remettre à chaque rafraichissement de l'image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_horloge->setPixmap(*m_image_horloge);
    Puis ca fonctionne

  4. #4
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Ah ben oui tu peints pas sur un widget; mes confuses... Je doit être fatigué en ce moment je lis trop de topics de travers :'(

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/12/2014, 10h55
  2. [C#]Rafraichir une image
    Par Scorff dans le forum ASP.NET
    Réponses: 7
    Dernier message: 21/06/2013, 18h53
  3. [Image]rafraichir une image..
    Par Empty_body dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 12/01/2006, 21h47
  4. [J2ME][MIDlet]rafraichir une image sans toucher au form?
    Par noobiewan kenobi dans le forum Java ME
    Réponses: 1
    Dernier message: 05/09/2005, 09h54
  5. Réponses: 1
    Dernier message: 02/08/2005, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo