bonsoir a tous,

j'aurais besoin d'un petit coup de pouce car je sèche, mes recherches sont resté infructueuses et donc me voila prés de vous ^^

j'aimerai dans le cadre d'un application gérer des catégorie avec des sous catégories. J'ai donc créé un widget appeler depuis ma fenêtre principale qui comporte un QLineEdit, une combobox et une pushboutton.

donc quand on ajoute une catégorie on peut choisir une catégorie parente dans la combobox et on va ajouter cette nouvelle catégorie a la db en cliquant sur le bouton.

la connexion au slot et l'enregistrement se passe bien mais je ne suis pas arriver a rafraichir le contenu de ma combox après l'ajout.

voici une portion du code qui crée le widget depuis un fichier .ui et le 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
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
 
/* constructeur */
 
CatForm::CatForm(QWidget *parent ) :
    QWidget(parent) ,
    catui(new(Ui::CatForm))
{
 
    catui->setupUi(this);
 
        /* recuperation des categories parentes pour la combo box  */
 
        /* on reconnect la db */
 
        QSqlDatabase db = QSqlDatabase::database() ;
 
        /* on stocke les categorie de la db dans un model et on masque la colone idcat */
 
        QSqlTableModel * catModel = new QSqlTableModel;
 
        catModel->setTable("category");        
        catModel->setEditStrategy(QSqlTableModel::OnManualSubmit);
        catModel->setHeaderData(0, Qt::Horizontal, QWidget::tr("idcat"));
        catModel->setHeaderData(1, Qt::Horizontal, QWidget::tr("category"));
        catModel->sort(1,Qt::AscendingOrder);
        catModel->select();
 
        catui->ParentCat->setModel(catModel);
        catui->ParentCat->setModelColumn(1);
 
        /* slots pour ajouter la nouvelle categorie a la db quand on clique sur le boutton ajouter */
 
        connect(catui->AddCatSubmit,SIGNAL(clicked()),this,SLOT(AddCategory())) ;
 
 
}
 
 
/* ajout d'une categorie */
 
void CatForm::AddCategory()
{
 
      /* on ajoute a la db la categorie mentionne dans le champ */
 
      QSqlQueryModel *model = static_cast<QSqlQueryModel *>(catui->ParentCat->model());
 
      query.prepare("INSERT INTO category (category,idparent) VALUES (:catname,:parentcatid)");
      query.bindValue(":catname",catui->CatName->text());
      query.bindValue(":parentcatid",model->data(model->index(catui->ParentCat->currentIndex(), 0)).toInt());
      query.exec();
 
}
mon code n'est sans doute pas le code le plus pro du monde et ma façon d'aborder cette tache dans le programme n'est peut-être pas la meilleure non plus.

quelqu'un aurait il la gentillesse de m'aiguiller vers ou orienter mes recherches ?