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 :

[QTableWidget] Veux tu bien te fermer ?


Sujet :

Qt

  1. #1
    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 [QTableWidget] Veux tu bien te fermer ?
    Re bonjour,

    De retour pour ne nouvelles aventures (problèmes) Qtesques !
    Pour résumer, je fais une application MDI, intégrant différents types de Widgets.

    J'arrive à intégrer des QTextEdit et des QMovie sans problèmes. Ce n'est pas la même chose pour les QTableWidget.

    La création se passe très bien, l'affichage aussi. Le problème survient lorsque je ferme une QtableWidget(clic sur la croix en haut à droite). En effet, mon debuger se lance et me renvoit sur la méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void QTableModel::clearContents()
    {
        for (int i = 0; i < tableItems.count(); ++i) {
            if (tableItems.at(i)) {
                tableItems.at(i)->view = 0;
     ==>      delete tableItems.at(i);
                tableItems[i] = 0;
            }
        }
        reset();
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Unhandled exception at 0x655f9135 (QtGuid4.dll) in MDI2.exe: 0xC0000005: Access violation reading location 0xdddddddd.
    Je ne comprends pas pourquoi le delete n'arrive pas à supprimer mes Items.
    Je vous joins aussi le code du remplissage de ma table, l'erreur vient sans doute de là.

    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
     
    ----------------------------------------------------------------
    QTableWidget *table;
    QTableWidgetItem *tableItem;
    ----------------------------------------------------------------
     
    void MainWindow::newTable()
    {
        static int tableNumber = 1;
     
        	table = new QTableWidget(10,3,this);	
    	curFile = tr("Tableau%1.txt").arg(tableNumber++);
        	table->setWindowTitle(curFile);
    	this->tableInit();
    	this->mdiArea->addSubWindow(table);
    	table->show();
    }	
     
     
     
    void MainWindow::tableInit()
    {
    	tableItem = new QTableWidgetItem("Colonne 1");
    	this->table->setItem(0,0,tableItem);
     
    	tableItem = new QTableWidgetItem("Colonne 2");
    	this->table->setItem(0,1,tableItem);
     
    	tableItem = new QTableWidgetItem("Colonne 3");
    	this->table->setItem(0,2,tableItem);
     
    	...
     
    }
    Merci encore pour votre aide. Désolé pour la lourdeur du post.

    Qteusement,

    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/

  2. #2
    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
    J'up ce post.
    Je n'ai toujours rien trouvé, même pas de problème similaire.

    Est ce parce que mon poblème est bateau que vous ne repondez pas ? Ou alors parce qu il evoque juste rien du tout ?

    Sinon y'a t'il une solution équivalente pour faire des "tableaux(genre excel)" avec Qt ?

    Merci

    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/

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Salut.
    Peut tu faire un petit exemple compilable pour illustrer ton problème?

  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 Ca y est !
    Ca y est j'ai résolu ce problème, encore une bêtise. Je suis désolé d'avoir insisté.

    Le problème venait en effet du remplissage de ma table. Ayant beaucoup de choses à mettre avec des contenus similaires, j'ai fait des copier-coller. Par mégarde, j'ai attribue le même item dans 2 cases différentes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    exemple :
    
    tableItem = new QTableWidgetItem("Colonne 1");
            this->table->setItem(0,0,tableItem);
    
    tableItem = new QTableWidgetItem("Colonne 2");
    	this->table->setItem(0,1,tableItem);
    
    	this->table->setItem(0,2,tableItem);
    Le destructeur détruisait l'item la première fois. La seconde fois, le pointeur de la case ou il y avait le même item ne pointait plus sur rien, le destructeur ne pouvait donc pas supprimer l'objet => Bug.

    Erreur simple qui s'était faufilée dans le code.
    Enfin merci d'avoir pris de votre temps pour essayer de m'aider.

    Amicalement,

    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/

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

Discussions similaires

  1. Comment bien fermer un application
    Par icekev dans le forum VB.NET
    Réponses: 3
    Dernier message: 01/04/2010, 12h53
  2. je veux bien ajoute oes2sur mon serveur sles
    Par faiza2008 dans le forum SUSE
    Réponses: 2
    Dernier message: 20/01/2008, 10h13
  3. Je veux tester que ce String est bien un double
    Par poulette3000 dans le forum Langage
    Réponses: 5
    Dernier message: 31/07/2007, 12h03
  4. Réponses: 29
    Dernier message: 12/07/2007, 11h55
  5. Réponses: 10
    Dernier message: 30/05/2006, 16h33

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