QModelIndex::Index() 源码
时间: 2024-03-16 08:15:50 浏览: 179
QTableview常用几种代理总结(附源码)
QModelIndex::Index() 源码如下:
```cpp
QModelIndex::QModelIndex() : d(nullptr)
{
}
QModelIndex::QModelIndex(const QModelIndex &other) : d(other.d)
{
}
QModelIndex::QModelIndex(int row, int column, void *data) : d(new QPersistentModelIndexPrivate(row, column, data))
{
}
QModelIndex::~QModelIndex()
{
}
QModelIndex &QModelIndex::operator=(const QModelIndex &other)
{
d = other.d;
return *this;
}
bool QModelIndex::operator==(const QModelIndex &other) const
{
return d == other.d;
}
bool QModelIndex::operator!=(const QModelIndex &other) const
{
return d != other.d;
}
bool QModelIndex::isValid() const
{
return d != nullptr && d->model != nullptr && d->model->d_func()->indexIsValid(d->internalId);
}
int QModelIndex::row() const
{
return d ? d->row : -1;
}
int QModelIndex::column() const
{
return d ? d->column : -1;
}
QVariant QModelIndex::data(int role) const
{
return d ? d->model->data(*this, role) : QVariant();
}
QModelIndex QModelIndex::child(int row, int column) const
{
return d ? d->model->index(row, column, *this) : QModelIndex();
}
QModelIndex QModelIndex::parent() const
{
return d ? d->model->parent(*this) : QModelIndex();
}
QModelIndex QModelIndex::sibling(int row, int column) const
{
return d ? d->model->sibling(row, column, *this) : QModelIndex();
}
void *QModelIndex::internalPointer() const
{
return d ? d->internalPointer : nullptr;
}
qint64 QModelIndex::internalId() const
{
return d ? d->internalId : 0;
}
```
注:此处源码来自 Qt 5.15.2 版本。
阅读全文