2011-07-11 12 views
2

いくつかの例を読んだ後、私はまだ何かここに行方不明です。 QSreeFilterProxyModelサブクラスを使用して、QtreeviewビューとQStandardItemModelをデータインターフェイス用に使用していますが、関連するかどうかわかりません。 QSortFilterProxyModelでツリービューを設定しQStandardItemModelを使用してQtreeviewで子を作ることができません

QStandardItemModel m_model = new QStandardItemModel(0,4,parent); 
then setSourceModel(m_model) for the widget 

:私は親としてのQWidgetでモデルを作成 まず: は、これが私のロジックです。このような何か:

GroupProxyModel = new GroupSortFilterProxyModel; 
GroupProxyModel->setDynamicSortFilter(true); 
setSourceModel(createSubjectModel(parent)); 

ui.treeView_mainwindow->setModel(GroupProxyModel); 
ui.treeView_mainwindow->setSortingEnabled(true); 

その後私はこのような最初の行を埋める:すべてのものが正常に動作して今まで

QList<QStandardItem *> items; 
items.insert(0,new QStandardItem("Test 0")); 
items.at(0)->setEditable(false); 
m_model->insertRow(0,items); 

を、私はデータを持つ行を参照してください。しかし、私は 次のように行に子を追加したいとき:

QModelIndex parentQModelIndex = m_model->item(0,0)->index(); 
m_model->insertRows(0,1,parentQModelIndex); 
m_model->insertColumns(0,1,parentQModelIndex); 
QModelIndex indexB = m_model->index(0, 0, parentQModelIndex); 
m_model->setData(indexB,"Child test",Qt::DisplayRole); 

をしかし、私は、なぜ、子供が表示されませんか?

答えて

5

QStandardItemModelがどのように動作するかではない - 子を追加するために、appendRow(複数可)を呼び出す/のinsertRow(s)は、親QStandardItem上:

QStandardItem* child = new QStandardItem(tr("Child test")); 
... 
QStandardItem* parentItem = m_model->item(0, 0); 
parentItem->appendRow(child); 
関連する問題