Éditer un QTableView avec QStandardItemModel
Bonjour 8-)
J'essaye d'éditer mon QStandardItemModel après initialisation via le clic d'un bouton.
Je m'explique:
1) J'affiche d'abord mon QtableView et QStandardItemMode inisialiser.
2) Ensuite j'écris du text dans mon tableau.
3) Ensuite si je clic sur un bouton, et cela enregistre les texts éditer dans mon tableau dans un fichier.
Mais le problème est que je n'arrive pas à simplement dans un premier temps à interagir avec mon QStandardItemModel.
Je m'explique:
1) 1) J'affiche d'abord mon QtableView et QStandardItemMode inisialiser.
2) Ensuite si je clic sur un bouton, et cela affiche du nouveau text dans mon tableau à l'item spécifier.
Ps: Mon slol3 fonctionne!
Voici mon code:
Construction_Table.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
class Construct_Table : public QDialog
{
Q_OBJECT
public:
Construct_Table();
public:
void Table1(QWidget*,int);
void Construct_Buttons(QWidget*,int);
QStandardItemModel *modele;
QTableView *tableView;
QStandardItem *standarditem1;
QPushButton *playButton;
public slots:
void slot3();
}; |
Code:
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
|
void Construct_Table::Table1(QWidget *View1,int a)
{
modele = new QStandardItemModel(30,8);
for(i=0;i<=29;i++){
for(j=0;j<=7 ;j++){
standarditem1 = new QStandardItem(QStandardItem::UserType);
standarditem1->setText("---"); //write( QDataStream & out ); //Charger_Tables_H(i,j)
standarditem1->setTextAlignment(Qt::AlignCenter);
modele->setItem (i, j, standarditem1);
}
}
tableView = new QTableView(View1);
tableView->setGeometry( 0, 62, 650, 30);
tableView->setModel(modele);
}
void Construct_Table::Construct_Buttons(QWidget *infos, int d)
{
playButton = new QPushButton("ENTER",info);
playButton->setGeometry(760, 330, 240, 30);
Construct_Table *test = new Construct_Table;
QObject::connect(playButton, SIGNAL(clicked()),test, SLOT(slot3()));
}
void Construct_Table::slot3()
{
standarditem1 = new QStandardItem(QStandardItem::UserType);
standarditem1->setText("Hello"); //write( QDataStream & out );
standarditem1->setTextAlignment(Qt::AlignCenter);
modele->setItem (3, 3, standarditem1);
tableView->setModel(modele);
} |
Je n'ai aucune erreur lors de la compilation, mais après affichage, lorsque je clique sur le bouton playButton, mon application plante.
Voila à mon avis je m'y prend mal. :?
Si quelqu'un à une réflexion à faire c'est le moment :roll:
Merci. ;)