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 :

Rafraichissement à l'écran


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 13
    Par défaut Rafraichissement à l'écran
    Bonjour

    Je débute en Qt. J'ai essayé de tracer une simple ligne et de la faire défiler à l'écran et j'ai un problème de "flickering".
    Voici un extrait du code : c'est très basique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    painter->fillRect(event->rect(), background);
    painter->setPen(circlePen);
     
        if (temps > 600) {
            temps = 0;
        } else {
            temps++;
        }
        painter->save();
        painter->drawLine (QPoint (0,temps), QPoint (1200,temps));
        painter->restore();
    Le timer est à 20ms.

    Avez-vous une idée ?
    Je suis sous Windows 7.
    Le code compilé sous MSVC2012 ou MinGW pose le même problème.

    Je n'ai pas le souci lorsque je fais le même exemple avec les MFC sous VisualC++ : donc pas de pb d'écran ni de carte graphique.

    Ai-je oublié une option ?

    Merci

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 258
    Par défaut
    Utilises plutôt une qgraphicsscene avec un qgraphicLineItem, c'est prévu pour ce genre de chose.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 13
    Par défaut
    Merci Christophe.

    Question peut-etre "stupide" : Ce bagotement ne serait-il pas lié à la jit du timer et/ou à la fréquence de rafraichissement de l'écran (60Hz) ?
    Lorsque je passe le timer à (1000.0/60.0) ou à (1000.0/120.0), j'ai l'impression que c'est beaucoup mieux.
    Idem, le timer semble plus "stable" avec MSVC qu'avec QT lorsque je trace les valeurs.

    Qu'en penses-tu ?

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 258
    Par défaut
    Je suis pas un pro, mais disons que je commence à me débrouiller.

    QPainter est plutôt fait pour n'afficher l'image qu'une fois que celle-ci est générée, je m'en sers plutôt pour imprimer en pdf par exemple, donc image figée.

    QGraphicsScene est fait pour générer une scène, donc plus adapté pour faire une sorte d'animation.

    Après je peux me planter. Essayes et tu verras le résultat.

    Exemple d’utilisation :

    Avec QGraphicsScene, je trace un trait un peu comme dans un logiciel de dessin, la taille du trait et son tracé change jusqu'à ce que je lache le bouton gauche de la souris.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 13
    Par défaut
    Bonsoir

    J'ai fait 4 essais :
    1/ Animation en utilisant QPainter : il y a des tremblements (flicker)
    2/ Animation en dessinant dans un QPixmap puis utiliser QPainter : cela ne change pas trop
    3/ Animation en utilisant QGraphicsView/QGraphicsScene et addLine : c'est beaucoup mieux.
    4/ Animation en utilisant QGraphicsView/QGraphicsScene, passer par un QPixMap puis faire addPixmap : c'est identique.

    ==> QGraphicsView semble le plus adapté

    Je vais charger avec 100 000 pts/secondes et faire du scrolling à 100Hz pour voir si ça tient le coup.

    Merci

  6. #6
    Membre confirmé Avatar de linke
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 119
    Par défaut
    pourquoi ne pas utiliser une bibliothèque plus orienter 2d: Sdl, SFML......

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/01/2012, 14h56
  2. Rafraichissement d'écran trop important
    Par krfa1 dans le forum Windows XP
    Réponses: 2
    Dernier message: 17/09/2009, 16h24
  3. Bloquer le rafraichissement d'écran
    Par Opo dans le forum VBA Access
    Réponses: 3
    Dernier message: 19/11/2007, 12h11
  4. rafraichissement d écran
    Par libremax dans le forum Windows Forms
    Réponses: 4
    Dernier message: 30/09/2007, 20h28
  5. Problème de rafraichissement d'écran
    Par Chercheur dans le forum MFC
    Réponses: 2
    Dernier message: 26/09/2005, 22h35

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