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 avec removeRow()


Sujet :

Qt

  1. #1
    Membre confirmé Avatar de sebmag
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2009
    Messages : 52
    Par défaut Problème avec removeRow()
    Bonjour à tous,

    Voilà, j'ai un slot "supprimer" connecter à un bouton ! Ce slot doit supprimer les currentRow() de mon QTableWidget.

    Toutes les lignes se suppriment correctement sauf la dernière

    Lorsqu'il y a plusieurs lignes dans mon QTableWidget, tout se passe bien à chaque suppression ! Mais lorsqu'il ne reste qu'une seule ligne, je ne peux pas la supprimer (le programme plante) et je ne sais pas pourquoi !

    Voici mon slot :

    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
    void MainWindow::supprimer()
    {
        int ligne = ui->tableWidget->currentRow();
     
        if(ui->tableWidget->rowCount() != 0)
        {
            int reponse = QMessageBox::question(this, "Supprimer", "Etes-vous sûr de vouloir supprimer cette ligne ?", QMessageBox::Yes | QMessageBox::No);
            if(reponse == QMessageBox::Yes)
            {
                double resultat = 0;
                double poidsTableau = 0;
     
                resultat = ui->tableWidget->item(ui->tableWidget->currentRow(),4)->text().toDouble();
                poidsTableau = lcd->value() - resultat;
                lcd->display(poidsTableau);
                if(ui->tableWidget->rowCount() == 1)
                {
                    lcd->display(0);
                }
                ui->tableWidget->removeRow(ligne);
            }
        }
    }
    Je ne sais pas pourquoi ça plante à la dernière ligne, est-ce que quelqu'un aurait une idée s'il vous plaît ?

  2. #2
    Membre confirmé Avatar de sebmag
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2009
    Messages : 52
    Par défaut
    Ca y est j'ai trouvé !

    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
    void MainWindow::supprimer()
    {
        int ligne = ui->tableWidget->currentRow();
     
        if(ui->tableWidget->rowCount() != 0)
        {
            int reponse = QMessageBox::question(this, "Supprimer", "Etes-vous sûr de vouloir supprimer cette ligne ?", QMessageBox::Yes | QMessageBox::No);
            if(reponse == QMessageBox::Yes)
            {
                double resultat = 0;
                double poidsTableau = 0;
     
                resultat = ui->tableWidget->item(ui->tableWidget->currentRow(),4)->text().toDouble();
                poidsTableau = lcd->value() - resultat;
                lcd->display(poidsTableau);
                if(ui->tableWidget->rowCount() == 1)
                {
                    lcd->display(0);
                    ui->tableWidget->clearSelection();
                    ui->tableWidget->setRowCount(0);
                }
                else
                {
                    ui->tableWidget->removeRow(ligne);
                }
            }
        }
    }

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

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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