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 :

[Débutant Qt] QGraphicsScene: addPixmap et addText


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Par défaut [Débutant Qt] QGraphicsScene: addPixmap et addText
    Bonjour,

    je reprend un code qui utilise QT, et j'ai jamais utilisé QT. j'ai quelques petits soucis.

    Le but est d'afficher une image, avec un nom et un prénom par dessus.
    L'image n'est pas toujours la même.

    Pour changer l'image et le text, ça fonctionne comme ça;
    La première fois:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sceneImage = scene->addPixmap(mPixmap)
    /*...*/
    sceneFirstName = scene->addText(*firstName, myFont)
    sceneLastName = scene->addText(*firstName, myFont)
    Et pour les modifier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sceneImage->setPixmap(newPixmap);
    sceneFirstName->setPlainText(newText);
    /*...*/
    Ces appels (pour la modification) ont lieu dans une fonction qui est appellée chaque fois qu'une modif est faite (soit l'image a changé, soit le texte)

    Jusque la tout va bien.

    Mon soucis:

    1/ Parfois, le texte ne s'affiche pas. Pourtant la chaine passée n'est pas vide (les logs le confirment). Est-ce qu'il se peut que le texte soit "derrière" l'image? a chaque fois c'est la même fonction qui est appellée donc je suis surpris que le comportement ne soit pas le même a chaque fois... Comment forcer le texte ajouté avec addText etre sur l'image plutot que dessous (si c'est bien ça le problème). Je précise que les 2 addText sont fait l'un après l'autre, et parfois un des 2 texte est affiché mais pas l'autre... La position du texte est toujours la même.

    2/ Quand est-ce que l'afichage est rafraichi? directement quand une fonction setPixmap ou setPlainText est appellée et modifie la scene?

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    je ne peux pas répondre à tes questions ,mais voici un programme qui pourra peut-être t'aider :

    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
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QPainter>
    #include <QPixmap>
    #include <QApplication>
    //#include <QFont>
    //#include <QLabel>
    //#include <QPen>
     
    int main(int arg1,char * arg2[])
    {	QApplication	mapp(arg1,arg2)	;
    //Partie pour le titre
    		QPixmap	image1(400,20) ;
    			image1.fill(Qt::yellow) ;
    QPainter crayon1(&image1) ;
    		crayon1.drawText(20,10,"C'est la partie texte ..") ;
    //Partie pour l'image
    //		QPixmap image2 ;
    //			image2.load("image.xpm","XPM") ;
    		QPixmap image2(390,300)	;
    			image2.fill(Qt::red);
    		QPixmap image3(400,340)	;
    			image3.fill(Qt::blue) ;
    //partie pour dessiner 
    QPainter crayon2(&image3) ;
    			crayon2.drawPixmap(5,30,image2) ;
    //Addition des deux image.
    		QGraphicsScene	imgscene ;
    			imgscene.addPixmap(image1) ;
    			imgscene.addPixmap(image3) ;
    //Partie qui permet voir le resultat 
    		QGraphicsView	visualise(&imgscene) ;
    			visualise.show() ;
    mapp.exec()	;
    return  0 ;
    }
    voici un lien utile :
    lien vers les classes qt 4

    aurevoir.....
    Dernière modification par Deepin ; 19/10/2011 à 08h03.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    voici une version plus juste (excusez-moi...) :
    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
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QPainter>
    #include <QPixmap>
    #include <QApplication>
    //#include <QFont>
    //#include <QLabel>
    //#include <QPen>
     
    int main(int arg1,char * arg2[])
    {	QApplication	mapp(arg1,arg2)	;
    //Partie pour le titre
    		QPixmap	image1(400,20) ;
    			image1.fill(Qt::yellow) ;
    QPainter crayon1(&image1) ;
    		crayon1.drawText(20,10,"C'est la partie texte ..") ;
    //Partie pour l'image
    //		QPixmap image2 ;
    //			image2.load("image.xpm","XPM") ;
    		QPixmap image2(390,300)	;
    			image2.fill(Qt::red);
    		QPixmap image3(400,340)	;
    			image3.fill(Qt::blue) ;
    //partie pour dessiner 
    QPainter crayon2(&image3) ;
    			crayon2.drawPixmap(5,30,image2) ;
    //Addition des deux image.
    		QGraphicsScene	imgscene ;
    			imgscene.addPixmap(image3) ;
    			imgscene.addPixmap(image1) ;
    //Partie qui permet voir le resultat 
    		QGraphicsView	visualise(&imgscene) ;
    			visualise.show() ;
    mapp.exec()	;
    return  0 ;
    }
    ...
    j'ai modifier image3 <-> image1 ...
    ...

Discussions similaires

  1. Débutant XML
    Par viny dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 25/07/2002, 12h07
  2. [Kylix] Re Re: débutant sur Kylix et Linux.....
    Par Eclypse dans le forum EDI
    Réponses: 2
    Dernier message: 08/06/2002, 22h53
  3. [Kylix] Le débutant en Kylix et Linux....
    Par Eclypse dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 10h37
  4. Réponses: 3
    Dernier message: 07/05/2002, 16h06
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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