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 :

Problème dans une connexion

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Problème dans une connexion
    Bonjour,
    J'ai voulu faire un petit test avec QCheckBox, mais il y a un problème : le programme plante avant même d'avoir ouvert la fenêtre. Le debugger m'indique un signal SIBSEGV (segmentation fault) au niveau de la ligne où je fais le QObject::connect.
    MaFenetre.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
    #ifndef MAFENETRE_H
    #define MAFENETRE_H
     
    #include <QApplication>
    #include <QWidget>
    #include <QLineEdit>
    #include <QCheckBox>
    #include <QString>
     
    class MaFenetre : public QWidget
    {
        Q_OBJECT
    public:
        MaFenetre();
    public slots:
        void colle(int a);
    private:
        QLineEdit *text;
        QCheckBox *bouton;
    };
     
     
    #endif // MAFENETRE_H
    MaFenetre.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
    #include "mafenetre.h"
     
     
    MaFenetre::MaFenetre() :QWidget()
    {
        text=new QLineEdit("0",this);
        text->setReadOnly(true);
        setFixedSize(200,100);
        text->setGeometry(10,50,100,20);
        QObject::connect(bouton,SIGNAL(stateChanged(int)),this,SLOT(colle(int))); //ici, le signal SIGSEGV reçu de l'OS
    }
    void MaFenetre::colle(int a)
    {
        QString b(a);
        text->setText(b);
    }
    Le main.cpp coontient juste les instruction pour la création et l'affichege d'un widget de type MaFenetre.

    Si quelqu'un peut me dire où est le problème, je lui en serais reconnaissant.

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

    Tu as oublié d'initialiser le pointeur de la QCheckBox nommée (maladroitement, cela fait plutôt penser que l'on manipule un QPushButton) bouton.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bouton  = new QCheckBox(/* arguments */);
    Concernant cette ligne : QString b(a);, je pense plutôt que tu voulais utiliser QString::number()

  3. #3
    Invité
    Invité(e)
    Par défaut
    Cette erreur de débutant, j'ai honte. Pas assez l'habitude de travailler avec des pointeurs
    Merci en tous cas.
    Sinon merci aussi de me rappeler le QString::number().
    Le nouveau code est
    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
    #include "mafenetre.h"
     
     
    MaFenetre::MaFenetre() :QWidget()
    {
        text=new QLineEdit("0",this);
        text->setReadOnly(true);
        setFixedSize(200,100);
        text->setGeometry(10,50,100,20);
        bouton  = new QCheckBox("Vive moi",this);
        QObject::connect(bouton,SIGNAL(stateChanged(int)),this,SLOT(colle(int)));
    }
    void MaFenetre::colle(int a)
    {
        text->setText(QString::number(a));
    }
    Et, comme prévu, le champ affiche 0 quand la case est décochée et 2 quand elle est cochée.
    Par contre je ne comprends toujours pas ce qui correspond à la valeur 1 (Qt::PartiallyChecked). Je veux dire, dans quel cas la retrouve-t-on ?

    Merci d'avance (et merci de m'aider à devenir un meilleur programmeur)
    Dernière modification par Invité ; 24/06/2014 à 20h13.

  4. #4
    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 : 31
    Localisation : Autriche

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

    Informations forums :
    Inscription : Novembre 2012
    Messages : 978
    Par défaut
    Citation Envoyé par Neoflash Okashi Voir le message
    Et, comme prévu, le champ affiche 0 quand la case est décochée et 2 quand elle est cochée.
    Par contre je ne comprends toujours pas ce qui correspond à la valeur 1 (Qt::PartiallyChecked). Je veux dire, dans quel cas la retrouve-t-on ?

    Merci d'avance (et merci de m'aider à devenir un meilleur programmeur)
    Effectivement ça parait bizarre de prime abord. Avec une image on comprend tout de suite à quoi ça peut servir :

    Nom : n0g2h.png
Affichages : 68
Taille : 6,6 Ko

  5. #5
    Invité
    Invité(e)
    Par défaut
    D'accord merci !

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

Discussions similaires

  1. problème dans la connexion à une base
    Par al3alwa dans le forum NetBeans
    Réponses: 7
    Dernier message: 29/08/2007, 09h19
  2. Aide sur divers problèmes dans une base
    Par flower dans le forum Access
    Réponses: 10
    Dernier message: 08/06/2006, 18h25
  3. Problème dans une suppresion
    Par Hannubis dans le forum Langage SQL
    Réponses: 22
    Dernier message: 31/01/2006, 13h41
  4. problème dans une requête
    Par pierrOPSG dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/11/2005, 10h28
  5. Problème dans une procedure
    Par hpghost dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 09/01/2005, 12h14

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