本文整理汇总了C++中TreeModel::appendRow方法的典型用法代码示例。如果您正苦于以下问题:C++ TreeModel::appendRow方法的具体用法?C++ TreeModel::appendRow怎么用?C++ TreeModel::appendRow使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TreeModel
的用法示例。
在下文中一共展示了TreeModel::appendRow方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: QWidget
TestTreeView::TestTreeView(QWidget *parent) : QWidget(parent)
{
SqlConnection::getInstance();
/**
* Vue représentant l'arbre
* Envoi les signaux Datachanged pour mettre à jour la base de donnée
* La vue n'est pas directement connectée au model
*/
TreeView* treeView = new TreeView;
/**
* Création du model
*/
QSqlRelationalTableModel*model = new QSqlRelationalTableModel();
model->setTable("Course");
int semesterIndex = model->fieldIndex("semesterId");
int courseIndex = model->fieldIndex("name");
// Relation (Liste des semestre)
model->setRelation(semesterIndex, QSqlRelation("Semester", "id", "name"));
model->select();
QSqlTableModel* relmodel = model->relationModel(semesterIndex);
TreeModel* treeModel = new TreeModel(0,1);
/**
Construction de l'arbre (treeView)
*/
for(int row=0; row < relmodel->rowCount(); row++){
// Parcours de la liste les semestre
QString SemesterName = relmodel->index(row,1).data().toString();
QStandardItem* semester = new QStandardItem(SemesterName);
treeModel->appendRow(semester);
// Ajout des fils (cours)
for(int i=0; i < model->rowCount(); i++){
QString s = model->index(i,semesterIndex).data().toString();
if(s == SemesterName){
QStandardItem* course = new QStandardItem(model->index(i,courseIndex).data().toString());
semester->appendRow(course);
}
}
}
/**
* ces signaux ne marche pas forcément
* le but est de détecté si le model change depuis un autre widget
* Il faudra mettre à jour l'arbre dans ce cas;
*/
// Si le model change
connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(update(QModelIndex,QModelIndex)));
// si la relation change (ne marche pas !?)
connect(relmodel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(update(QModelIndex,QModelIndex)));
QVBoxLayout* layout = new QVBoxLayout(this);
layout->setContentsMargins(0,0,0,0);
treeView->setSelectionBehavior(QAbstractItemView::SelectRows);
treeView->setItemDelegate(new TreeDelegate );
treeView->setModel(treeModel);
layout->addWidget(treeView);
resize(800,300);
}