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 :

Problème d’accès de pointeur


Sujet :

Qt

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Problème d’accès de pointeur
    Bonjour,
    Je programme une fenêtre sur Qt, et j'ai un problème de crash, cela ressemble à un problème d'accès mais après avoir regarder la correction, je n'ai pas l'impressions d'avoir mal fait.

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    #ifndef FENPRINCIPALE_H
    #define FENPRINCIPALE_H
     
    #include <fensecondaire.h>
     
    #include <QWidget>
    #include <QVBoxLayout>
    #include <QGridLayout>
    #include <QGroupBox>
    #include <QLineEdit>
    #include <QTextEdit>
    #include <QCheckBox>
    #include <QPushButton>
    #include <QLabel>
    #include <QString>
     
    #include <QTextStream>
    #include <QDebug>
     
     
    class FenPrincipale : public QWidget
    {
        Q_OBJECT
     
    private :
     
    //Layouts et GroupBox
        QVBoxLayout *mainLayout;
        QGridLayout *nameLayout;
        QVBoxLayout *optionsLayout;
        QGridLayout *commentsLayout;
        QGroupBox *name;
        QGroupBox *options;
        QGroupBox *comments;
     
     
    //Widgets
        //Name
        QLineEdit *nom;
        QLineEdit *classeMere;
        QLabel *nomTitle;
        QLabel *classeMereTitle;
        //Options
        QCheckBox *IM;
        QCheckBox *constructeur;
        QCheckBox *destructeur;
     
        //Commentaires
        QLineEdit *auteur;
        QLineEdit *date;
        QTextEdit *role;
        QLabel *auteurTitle;
        QLabel *dateTitle;
        QLabel *roleTitle;
     
        //Autre
        QPushButton *generer;
        QPushButton *quitter;
     
     
    public :
        FenPrincipale();
     
    private slots :
        void genere();
    };
     
    #endif // FENPRINCIPALE_H
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    #include "fenprincipale.h"
     
     
    FenPrincipale::FenPrincipale() : QWidget()
    {
        setFixedSize(400, 600);
     
    //Création des layouts et groupBox
        QVBoxLayout *mainLayout = new QVBoxLayout;
        QGridLayout *nameLayout = new QGridLayout;
        QGridLayout *commentsLayout = new QGridLayout;
        QVBoxLayout *optionsLayout = new QVBoxLayout;
        QGroupBox *name = new QGroupBox("Nom");
        QGroupBox *options = new QGroupBox("Options");
        QGroupBox *comments = new QGroupBox("Commentaires");
     
    //Création des widgets
        //Name
        QLineEdit *nom = new QLineEdit;
        QLineEdit *classeMere = new QLineEdit;
        QLabel *nomTitle = new QLabel("Nom : ");
        QLabel *classeMereTitle = new QLabel("Classe mère : ");
     
        //Option
        QCheckBox *IM = new QCheckBox;
            IM->setText("Protéger le header contre les inclusions multiples");
        QCheckBox *constructeur = new QCheckBox;
            constructeur->setText("Génerer un constructeur par défaut");
        QCheckBox *destructeur = new QCheckBox;
            destructeur->setText("Génerer un destructeur");
     
        //Commentaires
        QLineEdit *auteur = new QLineEdit("salut");
        QLineEdit *date = new QLineEdit;
        QTextEdit *role = new QTextEdit;
        QLabel *auteurTitle = new QLabel("Auteur : ");
        QLabel *dateTitle = new QLabel("Date de création : ");
        QLabel *roleTitle = new QLabel("Role de la classe : ");
     
        //Autre
        QPushButton *generer = new QPushButton("Générer");
        QPushButton *quitter = new QPushButton("Quitter");
     
     
    //Ajout des Widgets
        nameLayout->addWidget(nomTitle, 0, 0, 1, 1);
        nameLayout->addWidget(nom, 0, 1, 1, 3);
        nameLayout->addWidget(classeMereTitle, 1, 0, 1, 1);
        nameLayout->addWidget(classeMere, 1, 1, 1, 3);
     
        optionsLayout->addWidget(IM);
        optionsLayout->addWidget(constructeur);
        optionsLayout->addWidget(destructeur);
     
        commentsLayout->addWidget(auteur, 0, 1, 1, 3);
        commentsLayout->addWidget(date, 1, 1, 1, 3);
        commentsLayout->addWidget(role, 2, 1, 1, 3);
        commentsLayout->addWidget(auteurTitle, 0, 0, 1, 1);
        commentsLayout->addWidget(dateTitle, 1, 0, 1, 1);
        commentsLayout->addWidget(roleTitle, 2, 0, 1, 1);
     
     
    //Ajout des layouts
        name->setLayout(nameLayout);
        options->setLayout(optionsLayout);
        comments->setLayout(commentsLayout);
        mainLayout->addWidget(name);
        mainLayout->addWidget(options);
        mainLayout->addWidget(comments);
        mainLayout->addWidget(generer);
        mainLayout->addWidget(quitter);
        this->setLayout(mainLayout);
     
    //Connexion
        QObject::connect(quitter, SIGNAL(clicked()), this, SLOT(close()));
        QObject::connect(generer, SIGNAL(clicked()), this, SLOT(genere()));
    }
     
    void FenPrincipale::genere()
    {
        QString texte;
     
        /*QTextStream out(stdout);
        out << auteur->echoMode();*/
     
        texte += " " + auteur->text() + "\n";
     
        //QDialog *fenetre = new FenSecondaire(texte);
        //fenetre->exec();
    }
    Cela concerne le pointeur auteur et le slot genere.
    Auteur est dans //création des widgets/commentaire et genere() est tout en bas.

    Merci d'avance pour votre aide

  2. #2
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 648
    Points
    7 648
    Par défaut
    Bonjour,

    tu a 2 auteur.
    Un qui est défini dans ta classe qui n'est jamais initialisé et que tu tentes d'utiliser!
    Un autre qui est une variable locale définie dans le corps de ton constructeur. Relis bien ta ligne 33.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Ohhh merci beaucoup j'avais pas compris que je créais un nouveau pointeur en laissant le type.
    Merci Beaucoup, tout marche maintenant.

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

Discussions similaires

  1. problème avec les pointeurs en c
    Par dialloma dans le forum C
    Réponses: 14
    Dernier message: 01/01/2007, 21h22
  2. probléme avec les pointeurs
    Par killer_instinct dans le forum C++
    Réponses: 6
    Dernier message: 11/12/2006, 11h37
  3. Réponses: 19
    Dernier message: 13/07/2006, 13h35
  4. [TTreeView] Problème avec les pointeurs d'objet
    Par BlackWood dans le forum Composants VCL
    Réponses: 2
    Dernier message: 02/07/2004, 14h31
  5. Problème passage de pointeur
    Par mick74 dans le forum MFC
    Réponses: 2
    Dernier message: 21/04/2004, 18h34

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