Qt 5.6.2(msvc2015-32bit)模型/视图只读示例意外行为

时间:2018-07-15 15:07:34

标签: c++ qt model-view-controller qtableview

我尝试使用“ readonly”模型/视图示例:

examples / widgets / tutorials / modelview / 1_readonly / mymodel.cpp

当我将其更改为...

#include <QDebug>
#include "mymodel.h"

MyModel::MyModel(QObject *parent)
    :QAbstractTableModel(parent)
{
}

int MyModel::rowCount(const QModelIndex & /*parent*/) const
{
   return 2;
}

int MyModel::columnCount(const QModelIndex & /*parent*/) const
{
    return 22000000;
}

QVariant MyModel::data(const QModelIndex &index, int role) const
{
    qDebug() << QString("R%1C%2")
                .arg(index.row() + 1)
                .arg(index.column() +1);

    if (role == Qt::DisplayRole)
    {
       return QString("R%1C%2")
                   .arg(index.row() + 1)
                   .arg(index.column() +1);
    }
    return QVariant();
}

... main.c中的QTableView不断在显示的单元格之外询问“索引”: enter image description here

但是,当我将返回值更改为21000000

int MyModel::columnCount(const QModelIndex & /*parent*/) const
{
    return 21000000;
}

...它按预期工作:

enter image description here

数字22000000有什么特别之处?

谢谢。

0 个答案:

没有答案