什么应该重载QAbstractItemModel :: flags为非有效的QModelIndex返回?

问题描述 投票:1回答:1

我正在阅读模型/视图架构https://doc.qt.io/qt-5/model-view-programming.html#making-the-model-editable的QT文档,并查看重载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可能更合乎逻辑

c++ qt qabstractitemmodel
1个回答
1
投票

你需要的是Qt::NoItemFlagshttps://doc.qt.io/Qt-5/qt.html#ItemFlag-enum

它是flags枚举的默认值(因为它是枚举中的第一项)。你也可以把它写成return {};,它会给你相同的Qt::NoItemFlags

© www.soinside.com 2019 - 2024. All rights reserved.