質問

When subclassing QAbstractTableModel, what's the proper way to get a QModelIndex for a given row and column (for example, to provide a convenience method data(int row, int column))?

There's index() and createIndex() - they both seem to do that?

Example:

TableModel::data(int row, int column, int role) const
{
    return data(index(row, column), role);
}
役に立ちましたか?

解決

What you want is index(), createIndex() is what subclasses use to generate indexes. However, QModelIndex has a data() member. So, model->index(row, column).data(role) may be what you want. No need for a helper function.

他のヒント

I would say index() is the idiomatic way here, your code is then correct.

Generally, createIndex() is used in subclass of QAbstractItemModel, when you need to override index() and parent() methods. Since QModelIndex constructor is private, you have to use createIndex() to create a new index.

Furthermore, a QModelIndex can store some internal data (QModelIndex::internalPointer). createIndex() is also used to pass an internal pointer to the created QModelIndex.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top