Что должен перегруженный QAbstractItemModel :: flags вернуть для недопустимого QModelIndex? - PullRequest
1 голос
/ 31 марта 2019

Я читаю документацию QT для архитектуры модель / представление https://doc.qt.io/qt-5/model-view-programming.html#making-the-model-editable и вижу пример перегрузки метода QAbstractItemModel :: flags, который возвращает Qt::ItemIsEnabled для недопустимого индекса:

Qt::ItemFlags StringListModel::flags(const QModelIndex &index) const
{
    if (!index.isValid())
        return Qt::ItemIsEnabled;

    return QAbstractItemModel::flags(index) | Qt::ItemIsEditable;
}

Таким образом, если индекс недопустим, то есть может иметь отрицательную строку, мы все равно считаем, что пользователь может взаимодействовать с ним.Есть ли смысл в этой логике?Для меня возвращение Qt::NoItemFlags в таком случае может быть более логичным

1 Ответ

1 голос
/ 31 марта 2019

Что вам нужно это Qt::NoItemFlags: https://doc.qt.io/Qt-5/qt.html#ItemFlag-enum.

Это значение по умолчанию для перечисления флагов (так как это первый элемент в перечислении). Вы могли бы также написать это как return {};, и это даст вам то же самое Qt::NoItemFlags.

...