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

Qwt Discussion :

Simplement tracer une courbe


Sujet :

Qwt

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Points : 15
    Points
    15
    Par défaut Simplement tracer une courbe
    Bonjour, j'ai suivi (en autre) cet exemple:
    http://qt.developpez.com/faq/?page=qwt#qwt-courbe

    et le compilateur me dit:
    error: no matching function for call to 'QwtPlotCurve::setData(double*, double*, int)'

    code cpp:
    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
     
        QwtPlot *myPlot = new QwtPlot;
        QwtPlotCurve *courbe = new QwtPlotCurve;
        QLineEdit *test = new QLineEdit;
     
        QVector<double> x(5);
        QVector<double> y(5);
     
        // On entre des valeurs
        for(int i=0;i<5;i++)
        {
            x.append((double)i);
            y.append((double)(5-i));
        }
     
        courbe->attach(myPlot);
        courbe->setData(x.data(),y.data(),x.size());
        myPlot->replot();
     
        QGridLayout *layout = new QGridLayout;
        layout->addWidget(myPlot, 0, 1);
        layout->addWidget(test,1,0);
        centralWidget()->setLayout(layout);
    avec bien sur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <qwt_plot.h>
    #include <qwt_plot_curve.h>
    Si je mets cette ligne en commentaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    courbe->setData(x.data(),y.data(),x.size());
    la fenetre s'ouvre correctement (mais aucune courbe n'est dessinée évidement).
    Quelqu'un peut m'aider sur cette erreur à la compilation?
    Je veux simplement afficher une courbe à partir d'un tableau de valeur, et quelque soit les exemples que j'ai trouvé sur internet j'ai toujours le même message à la compilation...
    Merci beaucoup d'avance

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 594
    Points
    188 594
    Par défaut


    À lire ton titre, j'aurais envie de te rediriger vers http://www.developpez.net/forums/d89...gramme-simple/. Je crains à lire un peu plus loin que ce te sera inutile.

    As-tu compilé Qwt ? Est-il disponible pour le compilateur ? Demandes-tu au compilateur de le lier à ton projet ? (En d'autres termes : as-tu ajouté quoi que ce soit à ton fichier .pro ?).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Points : 15
    Points
    15
    Par défaut
    Re,

    En fait j'ai trouvé, l'API sur le net n'est pas à jour il fallait regarder dans la doc qui est dans l'archive.
    Et remplacer setData par setSamples!
    Et là ça marche..

    Par contre une autre question.. Comment je fais si j'ai déjà un tableau de valeurs (pointeur sur ce tableau).. Car ça ne fonctionne pas ?? merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void MainWindow::DisplayCurve()
    {
        double *energy=fichier_Mcnp->m_TabTally[0].getEnergy();
        double *intensity=fichier_Mcnp->m_TabTally[0].getIntensity();
        double *incert=fichier_Mcnp->m_TabTally[0].getIncert();
        curve->setSamples(energy.data(),intensity.data(),energy.size());
        myPlot->replot();
    }
    J'ai vérifié avec le debugger et j'ai bien les premières valeurs de mes 3 tableaux...



    Debugger:
    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
    In file included from c:/Qwt-6.0.0-rc3/include/qwt_scale_div.h:14,
     
                     from c:/Qwt-6.0.0-rc3/include/qwt_plot_seriesitem.h:15,
     
                     from c:/Qwt-6.0.0-rc3/include/qwt_plot_curve.h:14,
     
                     from ../SpectruMcnp/mainwindow.h:8,
     
                     from ../SpectruMcnp/mainwindow.cpp:1:
     
    c:/Qwt-6.0.0-rc3/include/qwt_interval.h:270: warning: 'bool QwtInterval::isValid() const' redeclared without dllimport attribute after being referenced with dll linkage
     
    ../SpectruMcnp/mainwindow.cpp: In member function 'void MainWindow::DisplayCurve()':
     
    ../SpectruMcnp/mainwindow.cpp:223: error: request for member 'data' in 'energy', which is of non-class type 'double*'
     
    ../SpectruMcnp/mainwindow.cpp:223: error: request for member 'data' in 'intensity', which is of non-class type 'double*'
     
    ../SpectruMcnp/mainwindow.cpp:223: error: request for member 'size' in 'energy', which is of non-class type 'double*'
     
    ../SpectruMcnp/mainwindow.cpp:222: warning: unused variable 'incert'

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Points : 969
    Points
    969
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void MainWindow::DisplayCurve()
    {
        double *energy=fichier_Mcnp->m_TabTally[0].getEnergy();
        double *intensity=fichier_Mcnp->m_TabTally[0].getIntensity();
        double *incert=fichier_Mcnp->m_TabTally[0].getIncert();
        curve->setSamples(energy.data(),intensity.data(),energy.size());
        myPlot->replot();
    }
    Salut,
    la méthode data() de QVector permet d'obtenir un T* à partir de ton QVector<T>. Si tu as déjà un pointeur sur tes double, il suffit de les mettre directement en paramètres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void MainWindow::DisplayCurve()
    {
        double *energy=fichier_Mcnp->m_TabTally[0].getEnergy();
        double *intensity=fichier_Mcnp->m_TabTally[0].getIntensity();
        double *incert=fichier_Mcnp->m_TabTally[0].getIncert();
        curve->setSamples(energy,intensity,***taille de ton tableau***);
        myPlot->replot();
    }
    G.
    Un problème avec Qt ? Vous trouverez votre réponse ici : http://doc.trolltech.com/4.6/overviews.html
    En français (traduction réalisée par l'équipe Qt de DVP) : http://qt.developpez.com/doc/4.6/vues-d-ensemble/

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 34
    Points : 21
    Points
    21
    Par défaut
    Bonsoir,
    je tiens a jouter que la méthode setData(double*, double*, int) n'existe plus sous cette forme avec QWT6 (la documentation n'est pas encore mis à jour, peut être qu'il faut encore attendre la version finale).
    Tu peux tout de même peupler tes points comme t'as fais avec setSamples ou bien setRawSamples.

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2003
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Bonjour,
    j utilise QT sur Windows 7 64bits. Quelqu un pourrait me donner des infos pour installer ce kit... J ia un peu regardé mais je galere...
    merci

  7. #7
    Rédacteur/Modérateur
    Avatar de arnolddumas
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Autriche

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 978
    Points : 7 764
    Points
    7 764
    Par défaut
    Le sujet en question est vieux de quatre ans, inutile de continuer d'y poster. Merci de créer ton propre sujet pour décrire ton problème.

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/09/2014, 23h08
  2. Tracer une courbe tout simplement
    Par gmachi10 dans le forum MATLAB
    Réponses: 3
    Dernier message: 09/07/2008, 17h25
  3. Tracer une courbe avec 2 tableau de points
    Par babarpapa dans le forum 2D
    Réponses: 3
    Dernier message: 19/04/2006, 15h24
  4. [Images] [Librairie] Tracer une courbe ???
    Par cedre22 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 20/02/2006, 14h53
  5. Tracer une courbe théorique sur un TChart
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 29/09/2005, 11h46

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