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

Reply via email to