Bonjour,

Voilà çà fait deux que je galère la dessus.

J'ai un QtableView qui m'affiche un modele QSqlTableModel. A ceci j'ai enfin réussi à ajouter une colonne sup dans laquelle il y a un QCheckBox. Mon problème de pouvoir récupérer l'état du QCheckBox (principalement savoir si il est checked ou pas) pour enregistrer des données dans ma base sqlite.

Mon code
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
 
#include "PariEnCours.h"
#include "CreateConnection.h"
 
PariEnCours::PariEnCours()
{
    affiche();
}
 
void PariEnCours::affiche()
{
    //Connexion DB
    CreateConnection w("localhost", "essai.db", "root", "");
 
    m_Modele = new QSqlTableModel;
    m_Modele->setTable("pari");
    m_Modele->select();
    m_Modele->setFilter("resultat='en cours'");
 
    m_Modele->setHeaderData(1, Qt::Horizontal, tr("date"));
    m_Modele->setHeaderData(2, Qt::Horizontal, tr("mise"));
    m_Modele->setHeaderData(3, Qt::Horizontal, tr("cote"));
    m_Modele->setHeaderData(4, Qt::Horizontal, tr("resultat"));
    m_Modele->setHeaderData(5, Qt::Horizontal, tr("gain"));
    m_Modele->insertColumn(6);
    m_Modele->setHeaderData(6, Qt::Horizontal, tr("selection"));
 
    m_Vue = new QTableView;
    m_Vue->setModel(m_Modele);
    m_Vue->setWindowTitle("Pari en cours");
    m_Vue->setFixedSize(800,500);
    m_Vue->hideColumn(0);
 
 
    // Ajout d'une checkbox à chaque ligne
    for (int row = 0; row < m_Vue->model()->rowCount(); row++)
    {
        QCheckBox *check = new QCheckBox;
        m_Vue->setIndexWidget(m_Vue->model()->index(row,6), check);
    }
 
    m_Vue->show();
 
    QObject::connect(m_Modele, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(actionSlot(QModelIndex, QModelIndex)));
 
 
    //Fermeture connexion DB
    w.close();
 
}
 
void PariEnCours::actionSlot(QModelIndex topLeft, QModelIndex bottomRight)
{
    qDebug() << topLeft << bottomRight;
}

Merci d'avance