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 :

Déclarer QTableView

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Par défaut Déclarer QTableView
    Bonjour à toutes et tous .

    Je recommence mon projet , sans Qt Designer .

    Pourquoi ce morceau de code bloque ??
    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
     
    Saisie.h
    #ifndef SAISIE_H
    #define SAISIE_H
     
    #include <QtGui>
    #include <QTableView>
    #include <fenetre.h>
    #include <classe.h>
     
    class Saisie : public QMainWindow
    {
        Q_OBJECT
    public:
       Saisie(QMainWindow *parent = 0);
     
     
    private:
       QStandardItemModel *modele;
       QStringList listeHeader;
       //QStringList listeHeaderFollow;
       QTableView  *tableView;
    };
     
    #endif // SAISIE_H 
    Saisie.cpp
    #include <QTableView>
    #include "saisie.h"
    #include "fenetre.h"
     
    Saisie::Saisie(QMainWindow *parent ) :
        QMainWindow(parent)
     
    {
        modele = new QStandardItemModel(0,3, this);
        listeHeader << QString("Nom") << QString("Classement") << QString("Total");
        modele->setHorizontalHeaderLabels(listeHeader);
        tableView->setModel(modele);
    }
    Merci .

    Cordialement.

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 23
    Par défaut
    Sans plus d' infos, impossible d' aller plus loin..

    Tu obtiens quelle erreur?

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Par défaut
    Bonjour,

    Citation Envoyé par Go'Gaule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Saisie::Saisie(QMainWindow *parent ) :
        QMainWindow(parent)
     
    {
        modele = new QStandardItemModel(0,3, this);
        listeHeader << QString("Nom") << QString("Classement") << QString("Total");
        modele->setHorizontalHeaderLabels(listeHeader);
        tableView->setModel(modele);
    }
    tableView n'est pas initialisé.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Par défaut Déclarer QTableView
    Bonjour à toutes et tous .
    Entiz
    Sans plus d' infos, impossible d' aller plus loin..

    Tu obtiens quelle erreur?
    Aucune ..
    C'est bien le problème .
    Juste que cela quitte .. avant la fin de l'installation .

    Je pensais que cela pouvait venir de
    Cordialement

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Par défaut
    un pointeur non initialisé ça donne en général un "segment-fault".

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Par défaut Initialiser QTableView
    Bonjour à toutes et tous .

    abdou57
    un pointeur non initialisé ça donne en général un "segment-fault".
    L'initialiser ou et comment ?
    Je suis de nouveau complètement perdu .

    Merci .
    Cordialement.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Par défaut
    Bonjour,

    Citation Envoyé par Go'Gaule
    L'initialiser ou et comment ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    QTableView *tableView
    où ? dans le constructeur

    comment ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableView = new QTableView()

  8. #8
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    maFenetre est du type Fenetre*.
    maSaisie est du type Saisie*.

    Saisie ne dérive pas de Fenetre, donc il est impossible d'affecter un pointeur sur un objet du type Saisie à un pointeur sur un objet du type Fenetre.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  9. #9
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Qt c'est du C++, et ici c'est un problème de base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Saisie::Saisie(QWidget *parent) :
        QWidget(parent)
    {
        //...
        Fenetre *maFenetre(0); // Fenetre hérite de QWidget
        Saisie *maSaisie = new Saisie(); // Saisie hérite de QWidget + explosion car on est dans le constructeur de Saisie
        maFenetre = maSaisie; // classes "sœurs" => impossible d'où l'erreur
        //...
    }
    Edit : Grillé en partie.

  10. #10
    Membre émérite Avatar de Steph_ng8
    Homme Profil pro
    Doctorant en Informatique
    Inscrit en
    Septembre 2010
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 677
    Par défaut
    Bonjour,
    C'est effectivement du Qt, mais le problème n'est pas spécifique à Qt.

    Le message d'erreur me semble limpide, je ne vois pas ce qui te bloque.
    À la ligne 13, tu essaies d'affecter un pointeur sur un type à un pointeur sur un type non lié au premier.
    Rien d'étonnant à ce sujet.
    Un peu de lecture :F.A.Q C++ Comment effectuer une conversion de type explicite (cast) ?

    Si tu veux que les deux variables maFenetre et maSaisie pointent sur la même zone mémoire, alors l'opérateur reinterpret_cast devrait répondre à tes attentes.
    Mais il faut bien que tu te dises qu'il ne faudra libérer qu'une et une seule fois la mémoire allouée.
    De plus, si les classes Fenetre et Saisie ne sont pas suffisamment liées, tu risques d'avoir un comportement imprévisible.

    Mais à mon avis, ce n'est pas ce que tu veux vraiment.
    Et puis j'ai un peu de mal à comprendre pourquoi tu crées ces variables, pour ne jamais les utiliser par la suite...

    Je te conseille également de poster dans la section Qt du forum.
    Ça vaudra ce que ça vaudra, mais si tu veux interconnecter tes deux fenêtres, tu peux mettre dans chacune un pointeur sur l'autre.
    Comme ça, de l'une tu peux facilement accéder à l'autre.
    Mais ce n'est qu'un avis, ne connaissant pas le contexte.

    Edit : grillé aussi...

Discussions similaires

  1. [Property] Comment déclarer une chaine par defaut ?
    Par Clorish dans le forum Composants VCL
    Réponses: 8
    Dernier message: 07/09/2004, 22h11
  2. déclarer une nouvelle version de Tomcat
    Par keopsk dans le forum JBuilder
    Réponses: 9
    Dernier message: 02/07/2004, 22h28
  3. Comment déclarer une DataSource dans server.xml
    Par guillaume06 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 16/06/2004, 14h27
  4. Déclarer une matrice
    Par joy dans le forum C
    Réponses: 7
    Dernier message: 09/12/2002, 00h42
  5. [TASM] Déclarer le segment de pile
    Par cipher dans le forum x86 16-bits
    Réponses: 2
    Dernier message: 01/10/2002, 03h58

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