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 :

Dessiner avec Qt


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Par défaut Dessiner avec Qt
    Bonjour,

    Je souhaiterais dessiner des points et des lignes avec Qt, pour cela j'ai utilisé QPainter.
    J'ai reussi à le faire sur un QLabel.

    Maintenant je voudrais faire mes dessins pas directement sur le QLabel mais d'abord sur un QPixmap qui je mettrai par la suite dans un QLabel. Pourquoi ? en fait je recupere mes point à partir d'un fichier (qui contient un nombre assez important) il y a des point (beaucoup meme que je ne vois pas) sauf j'agrandis mon QLabel ! du coup je voudrais utiliser la proprieté setScaleContents pour adapter la taille du QPixmap à la taille du QLabel.

    j'ai essayé de dessiner le QPixmap en utilisant pas QPaintEvent mais QPaintDevice genre un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    class ZoneDessin : public QPixmap
    {
    public:
        ZoneDessin(int largeur, int hauteur);
     
        void dessin(QPaintDevice *ev);
    };
    ensuite dans le fichier cpp, dessin est définie comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    void ZoneDessin::dessin(QPaintDevice *)
    {
        QPainter painter(this);
        QPen pen;
        pen.setColor(Qt::red);
        pen.setWidth (3);
        painter.setPen(pen);
        painter.drawPoint(x,y);
     
        ... //reste du code
    la deja au moment de l'excution il m'affiche erreur :

    QPainter::setPen: Painter not active
    QPainter::drawPoints: Painter not active

    Je ne sais pas pourquoi ? auriez vous idée pour resoudre mon probleme c'est à dire adapter la taille de mon dessin pour la taille de mon QLabel ?

    Merci.

  2. #2
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    Bonjour,

    Il me semble que vous avez oublié d'appeler les fonction begin() et end() du painter sur this.

    Bonne continuation,
    Amnell.
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

Discussions similaires

  1. Dessiner avec wxWidgets
    Par SuperPat dans le forum wxWidgets
    Réponses: 5
    Dernier message: 24/02/2009, 00h06
  2. Le dessin avec VC dans une fenetre windows
    Par ccensam dans le forum MFC
    Réponses: 3
    Dernier message: 03/11/2005, 23h40
  3. Création dessin avec données saisies
    Par javajay dans le forum 2D
    Réponses: 5
    Dernier message: 26/10/2005, 02h55
  4. Réponses: 1
    Dernier message: 26/02/2005, 12h55

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