Here is a small application with an implementation of
QAbstractItemModel that is very simple. It just wraps a
QStandardItemModel.
Nevertheless it does not work as the plain QStandardItemModel.
Am I making a mistake or is there a bug somewhere?
TestModel model;
QTreeView view;
// view.setModel(model.model()); // works fine
view.setModel(&model); // does not work
view.resizeColumnToContents(0);
view.show();
Cheers,
Jos
#include <QtGui/QApplication>
#include <QtGui/QStandardItemModel>
#include <QtGui/QTreeView>
class TestModel : public QAbstractItemModel {
private:
QStandardItemModel m;
QVariant data(const QModelIndex& index, int role) const {
return m.data(index, role);
}
int columnCount(const QModelIndex& parent) const {
return m.columnCount(parent);
}
int rowCount(const QModelIndex& parent) const {
return m.rowCount(parent);
}
QModelIndex parent(const QModelIndex& child) const {
return m.parent(child);
}
QModelIndex index(int row, int column, const QModelIndex& parent) const {
return m.index(row, column, parent);
}
public:
TestModel(QObject* parent = 0) :QAbstractItemModel(parent) {
m.setColumnCount(2);
QStandardItem *parentItem = m.invisibleRootItem();
for (int i = 0; i < 4; ++i) {
QStandardItem *item = new QStandardItem(QString("subject %0").arg(i));
parentItem->appendRow(item);
for (int j = 0; j < 4; ++j) {
QStandardItem *item2 = new QStandardItem(QString("predicate %0").arg(j));
item->setChild(j, 0, item2);
QStandardItem* item3 = new QStandardItem(QString("object %0").arg(j));
item->setChild(j, 1, item3);
}
}
}
QAbstractItemModel* model() {
return &m;
}
};
int
main(int argc, char** argv) {
QApplication app(argc, argv);
TestModel model;
QTreeView view;
//view.setModel(model.model());
view.setModel(&model);
view.resizeColumnToContents(0);
view.show();
return app.exec();
}
_______________________________________________
Qt4-preview-feedback mailing list
[email protected]
http://lists.trolltech.com/mailman/listinfo/qt4-preview-feedback