Bonjour,
Tout d'abord ça fait un petit moment que je n'ai pas touché à la programmation et il y a des erreurs c'est certain notamement dans le fait que mon problème vient d'une classe abstraite
Je fait un petit programme qui recupère les données d'une table dans une base de donnée SQLite et les affiche sous forme de tableau afin de l'imprimer.
J'ai donc deux classes, une qui gère la base de donnée et l'autre qui gère l'IHM
Voici la declaration de la fonction dans Database.h
La fonction dans le *.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part QSqlQueryModel Semainier(QSqlQueryModel &model,QString Agent,QDate Date);
Et l'appel de la fonction dans l'IHM
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 QSqlQueryModel database::Semainier(QSqlQueryModel &model,QString Agent, QDate Date) { model.setQuery("SELECT Poste,Description,OG1,Heure1,OG2,Heure2,Vehicule,Forfait FROM Activite WHERE Agent ='"+Agent+"' AND Date ="+Date); model.setHeaderData(0,Qt::Horizontal,tr("Poste")); model.setHeaderData(1,Qt::Horizontal,tr("Description")); model.setHeaderData(2,Qt::Horizontal,tr("OG1")); model.setHeaderData(3,Qt::Horizontal,tr("Heures")); model.setHeaderData(4,Qt::Horizontal,tr("OG2")); model.setHeaderData(5,Qt::Horizontal,tr("Heures")); model.setHeaderData(6,Qt::Horizontal,tr("Vehicule")); model.setHeaderData(7,Qt::Horizontal,tr("Forfait")); return model; }
et lorsque je compile j'ai les erreurs suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 void FenetreVisualisation::AfficherTableau() { database *db = new database(); if (db->opendb()) { QSqlQueryModel *model = new QSqlQueryModel; ui->ViewSemainier->setModel(db->Semainier(*model,ui->comboBoxAgent->currentText(),ui->dateEdit->date())); ui->ViewSemainier->show(); } else { }
j'ai cherché une journée complete, je m'en remet à vous, je sais que mon erreur est conne mais j'ai du mal :s
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 C:\Documents and Settings\MicroSCADA\Mes documents\Application cahier blanc\Cahier_Blanc\fenetrevisualisation.cpp:-1: In member function 'void FenetreVisualisation::AfficherTableau()': C:\Documents and Settings\MicroSCADA\Mes documents\Application cahier blanc\Cahier_Blanc\fenetrevisualisation.cpp:19: erreur : no matching function for call to 'QTableView::setModel(QSqlQueryModel)' ui->ViewSemainier->setModel(db->Semainier(*model,ui->comboBoxAgent->currentText(),ui->dateEdit->date())); ^ C:\Documents and Settings\MicroSCADA\Mes documents\Application cahier blanc\Cahier_Blanc\fenetrevisualisation.cpp:19: candidate is: C:\Qt\5.2.0\mingw48_32\include\QtWidgets\QTableView:1: In file included from ..\..\..\..\..\Qt\5.2.0\mingw48_32\include/QtWidgets/QTableView:1:0, C:\Documents and Settings\MicroSCADA\Mes documents\Application cahier blanc\build-Cahier_Blanc-Desktop_Qt_5_2_0_MinGW_32bit-Debug\ui_fenetrevisualisation.h:22: from ./ui_fenetrevisualisation.h:22, C:\Documents and Settings\MicroSCADA\Mes documents\Application cahier blanc\Cahier_Blanc\fenetrevisualisation.cpp:2: from ..\Cahier_Blanc\fenetrevisualisation.cpp:2: C:\Qt\5.2.0\mingw48_32\include\QtWidgets\qtableview.h:68: virtual void QTableView::setModel(QAbstractItemModel*) void setModel(QAbstractItemModel *model); ^ C:\Qt\5.2.0\mingw48_32\include\QtWidgets\qtableview.h:68: note: no known conversion for argument 1 from 'QSqlQueryModel' to 'QAbstractItemModel*'
Merci beaucoup !
Partager