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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
| #include "test.h"
#include"modeltest.h"
//Test::Test(QWidget *parent) : QWidget(parent) {}
/*
*Classe qui contient
* la tabView
*/
Test::Test() : QWidget()
{
QStandardItemModel *model = new QStandardItemModel(0, 2);
QStringList list;
list << "france" << "Angleterre" << "Allemagne" << "Italie";
for(int row = 0; row<4; ++row)
{
model->setItem(row, 0, new QStandardItem(static_cast<QString>(list.at(row))));
}
QTableView *table = new QTableView;
table->setModel(model);
ModelTest *delegate;
table->setItemDelegateForColumn(0, delegate);
QVBoxLayout *vlayout = new QVBoxLayout;
vlayout->addWidget(table);
setLayout(vlayout);
}
/*Header de la classe
* qui met en place
*le delegate
*/
#ifndef MODELTEST_H
#define MODELTEST_H
#include <QtWidgets>
#include<QObject>
class ModelTest : public QItemDelegate
{
Q_OBJECT
public:
ModelTest(QObject *parent = 0);
public:
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
void setEditorData(QWidget *editor, const QModelIndex &index) const;
// void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;
void updateEditorGeometry(QWidget *editor, QStyleOptionViewItem &option, const QModelIndex &index) const;
};
#endif // MODELTEST_H
/*.cpp de la classe
*met en place le
*delegate
*/
#include "modeltest.h"
ModelTest::ModelTest(QObject *parent) : QItemDelegate(parent)
{
}
QWidget *ModelTest::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QSplitter *splitter = new QSplitter;
return splitter;
}
void ModelTest::setEditorData(QWidget *editor, const QModelIndex &index) const
{
QStringList list;
QStringList list2;
list<< "cameroun" << "tchad" << "congo";
list2 << "ivoire" << "argent" << "pain";
QStandardItemModel *model = new QStandardItemModel;
QStandardItem *parent1 = new QStandardItem("Pays");
for(int row =0; row<3; ++row)
{
parent1->appendRow(new QStandardItem(static_cast<QString>(list.at(row))));
}
QStandardItem *parent2 = new QStandardItem("Monnaie");
for(int row =0; row<3; ++row)
{
parent2->appendRow(new QStandardItem(static_cast<QString>(list2.at(row))));
}
model->setItem(0, 0, parent1);
model->setItem(1, 0, parent1);
QTreeView *tree = new QTreeView(static_cast<QSplitter*>(editor));
tree->setModel(model);
}
void ModelTest::updateEditorGeometry(QWidget *editor, QStyleOptionViewItem &option, const QModelIndex &index) const
{
editor->setGeometry(option.rect);
} |
Partager