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

Discussion :

Vecteur de widgets

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut Vecteur de widgets
    Bonjour tous,

    dans ce sujet je vais faire allusion à un widget qui appartient à la bibliotheque Qwt mais je n'ai pas posé mon poste dans cette bibliotheque car mon probleme conserne plutot la maniere de faire des vector de widget:

    dans une classe j'ai mis ceci comme attribut:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    private:
        std::vector< QwtPlotCurve > mycurve;
    c'est un vecteur de widget

    ensuite dans le constructeur je fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mycurve.resize ( nbCurve );

    je m'attendais donc à un vecteur de taille "nbCurve"

    mais j'ai obtenu une erreur que je ne comprends pas:
    [COLOR="rgb(255, 0, 255)"][cf piece jointe][/COLOR]

    pourriez vous me dire pourquoi j'ai ceci? et comment resoudre donc mon probleme ?


    en fait pour etre plus precis voici ce que voudrais faire dans le constructeur



    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
    mycurve.resize ( 14 );  
     
        for ( int k = 0 ; k < NombreSimul ; ++k )
        {
            mycurve[1+nombreDoublePlot*k].attach ( myPlot1 );
            mycurve[1+nombreDoublePlot*k].setStyle( QwtPlotCurve::Dots );
            mycurve[1+nombreDoublePlot*k].setPen( QPen( Qt::blue, 4 ) );
     
            mycurve[2+nombreDoublePlot*k].attach ( myPlot2 );
            mycurve[2+nombreDoublePlot*k].setStyle( QwtPlotCurve::Dots );
            mycurve[2+nombreDoublePlot*k].setPen( QPen( Qt::blue, 4 ) );
     
            mycurve[3+nombreDoublePlot*k].attach ( myPlot3 );
            mycurve[3+nombreDoublePlot*k].setStyle( QwtPlotCurve::Dots );
            mycurve[3+nombreDoublePlot*k].setPen( QPen( Qt::blue, 4 ) );
     
            mycurve[4+nombreDoublePlot*k].attach ( myPlot4 );
            mycurve[4+nombreDoublePlot*k].setStyle( QwtPlotCurve::Dots );
            mycurve[4+nombreDoublePlot*k].setPen( QPen( Qt::blue, 4 ) );
     
            mycurve[5+nombreDoublePlot*k].attach ( myPlot5 );
            mycurve[5+nombreDoublePlot*k].setStyle( QwtPlotCurve::Dots );
            mycurve[5+nombreDoublePlot*k].setPen( QPen( Qt::blue, 4 ) );
     
            mycurve[6+nombreDoublePlot*k].attach ( myPlot6 );
            mycurve[6+nombreDoublePlot*k].setStyle( QwtPlotCurve::Dots );
            mycurve[6+nombreDoublePlot*k].setPen( QPen( Qt::blue, 4 ) );
     
            mycurve[7+nombreDoublePlot*k].attach ( myPlot7 );
            mycurve[7+nombreDoublePlot*k].setStyle( QwtPlotCurve::Dots );
            mycurve[7+nombreDoublePlot*k].setPen( QPen( Qt::blue, 4 ) );
       }
    je vous remercie d'avance

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2010
    Messages : 243
    Par défaut
    Les QWidgets héritant de QObject, ils sont "uniques" en ce sens qu'ils ont un parent, font partie d'une famille etc... Bref le constructeur de recopie est désactivé.

    Mettre les widgets dans un vecteur est impossible, il faut passer par des pointeurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    QVector<QWidget*> widgetVector;
    widgetVector.append(new QPushButton("coucou"));

  3. #3
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Petite précision : QwtPlotCurve n'hérite pas de QWidget. Par contre, ce que dit ness522 reste valable, QwtPlotCurve n'est pas copiable (comme l'indique l'erreur, l'opérateur d'affectation = est déclaré en privé)
    La raison de cette erreur est que les conteneurs réalisent une copie de l'objet dans la conteneur et ont donc besoin d'avoir des classes copiables (je pense que cela ne sera plus vrai avec le c++11 et la move sementic mais il faut demander des précision sur le forum c++)

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    merci beaucoup pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SWT]Eclipse Java : swt.widgets.Table
    Par watson dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 01/10/2003, 09h07
  2. [math] somme de plusieurs vecteurs à 3 dimensions
    Par teska dans le forum Mathématiques
    Réponses: 5
    Dernier message: 04/06/2003, 21h40
  3. Récuperer les coordonnées d'un vecteur
    Par kerzut dans le forum OpenGL
    Réponses: 5
    Dernier message: 15/04/2003, 11h51
  4. Zoom sur des vecteurs ou lignes
    Par mat.M dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 25/11/2002, 10h40
  5. matrices * vecteur
    Par delire8 dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 07/09/2002, 14h15

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