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 :

Comment dessiner sur un QScrollArea ?


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 88
    Par défaut Comment dessiner sur un QScrollArea ?
    Bonjour,
    tout est dans le titre ...
    J'arrive quand meme à dessiner sur QLabel(ou QWidget) quand il n'est pas intégré à un QScrollArea , mais de lors que que je l'attache ça marche plus!
    Il parait que c'est lié à une fonction de viewport , mais je trouve pas plus d'indication ladessus !
    Quelqu'un aurait une idée .
    Merci d'avance

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 88
    Par défaut
    Merci yan de ta réponse !
    Ca résout mon problème .
    Sauf que lorsque je dessine, l'affichage n'est pas instantané !!
    Pour qu'il prenne en compte le dessin que je viens de faire , je dois touché à la taille de la fenêtre , et là il va se mettre à jour !
    Est ce que tu as déjà eu ce genre de problème ? et y'a t il une soltuion à ça ?
    j'ai déjà utilisé update(); ça donne rien !
    Merci

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par doukha Voir le message
    Sauf que lorsque je dessine, l'affichage n'est pas instantané !!
    tu fait bien tous dans le paintevent?
    Tu utilise quel version de Qt?
    tu peut monter un peu de code?

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 88
    Par défaut
    Tout dans le paintEvent , version Qt 4.6.2

    Mon bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    #include <QtGui>
     
    class MonWidget : public QScrollArea
    {
    public :
    	MonWidget() {}
     
    protected :
        void mouseMoveEvent(QMouseEvent *qevent)
        {
            m_points << qevent->pos();
            update();
        }
        void paintEvent(QPaintEvent *)
        {
            QPainter p1(this->viewport());
    	QPainter p2(this->viewport());
            p2.setPen(Qt::red);//l'image ayant couleur noir alors je decide de dessiner en rouge
     
     
    	p1.drawImage(QPoint(0, 0),QImage("flim/Image08_B0L0S127")); //Je paint l'image avant, pour que je puisse dessiner dessus
            p2.drawPolyline(m_points); //je dessine dessus
     
        }
    private:
        QVector<QPoint> m_points;
    };
     
    int main (int argc, char * argv[])
    {
        QApplication app(argc,argv);
    	QLabel label;
    	MonWidget w;//Qui est un ScrollArea
    	w.setWidget(&label);//Affectation du widget (label)
     
            w.resize(300,300);
            w.show(); //Affichafe ScrollArea
        return app.exec();
    }
    Il reste plus à compiler.Et lorsque tu dessine et que y'a rien .Pense à resizer la taille de la fenetre pour l'affichage.

    ps: p1.drawImage(QPoint(0, 0),QImage("flim/Image08_B0L0S127")); peut etre mis en commentaire. le problème reste le meme !

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QPainter p1(this->viewport());
    QPainter p2(this->viewport());
    pourquoi deux painter???
    a mon avis ça se rentre dedans. une widget ne devrais être manipuler que par un seule painter à la fois.

Discussions similaires

  1. Comment dessiner sur une TextBox
    Par Alexandre` dans le forum Windows Forms
    Réponses: 4
    Dernier message: 11/04/2009, 12h48
  2. comment dessiner sur une image
    Par baracouda dans le forum Graphisme
    Réponses: 2
    Dernier message: 26/05/2006, 00h21
  3. Comment dessiner sur un Bitmap sans scintillement ?
    Par TOTO32 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 10/01/2005, 10h11
  4. [Transparent] - Comment dessiner sur 2 TImage ?
    Par TOTO32 dans le forum Langage
    Réponses: 15
    Dernier message: 08/08/2004, 01h06

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