문제

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