QStringListModel 类

QStringListModel 类提供为视图供给字符串的模型。 更多...

头: #include <QStringListModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
继承: QAbstractListModel
继承者:

QHelpIndexModel

公共函数

QStringListModel (QObject * parent = nullptr)
QStringListModel (const QStringList & strings , QObject * parent = nullptr)
void setStringList (const QStringList & strings )
QStringList stringList () const

重实现公共函数

(从 6.0 起) virtual bool clearItemData (const QModelIndex & index ) override
virtual QVariant data (const QModelIndex & index , int role = Qt::DisplayRole) const override
virtual Qt::ItemFlags flags (const QModelIndex & index ) const override
virtual bool insertRows (int row , int count , const QModelIndex & parent = QModelIndex()) override
virtual QMap<int, QVariant> itemData (const QModelIndex & index ) const override
virtual bool moveRows (const QModelIndex & sourceParent , int sourceRow , int count , const QModelIndex & destinationParent , int destinationChild ) override
virtual bool removeRows (int row , int count , const QModelIndex & parent = QModelIndex()) override
virtual int rowCount (const QModelIndex & parent = QModelIndex()) const override
virtual bool setData (const QModelIndex & index , const QVariant & value , int role = Qt::EditRole) override
virtual bool setItemData (const QModelIndex & index , const QMap<int, QVariant> & roles ) override
virtual QModelIndex sibling (int row , int column , const QModelIndex & idx ) const override
virtual void sort (int column , Qt::SortOrder order = Qt::AscendingOrder) override
virtual Qt::DropActions supportedDropActions () const override

详细描述

QStringListModel 是可以用于需要在视图 Widget 中显示许多字符串的简单情况的可编辑模型,譬如 QListView QComboBox .

模型提供可编辑模型的所有标准功能,将字符串列表中的数据表示成具有一列和行数等于列表项数的模型。

对应项的模型索引的获得采用 index () 函数,和项标志的获得采用 flags ()。项数据的读取采用 data () 函数和写入采用 setData ()。行数 (和字符串列表中的项数) 可以找到采用 rowCount () 函数。

模型可以采用现有字符串列表构建,或稍后可以设置字符串采用 setStringList () 方便函数。也可以按通常方式插入字符串采用 insertRows () 函数,和移除采用 removeRows ()。可以检索字符串列表的内容采用 stringList () 方便函数。

QStringListModel 范例用法:

    QStringListModel *model = new QStringListModel();
    QStringList list;
    list << "a" << "b" << "c";
    model->setStringList(list);
					

另请参阅 QAbstractListModel , QAbstractItemModel ,和 模型类 .

成员函数文档编制

[explicit] QStringListModel:: QStringListModel ( QObject * parent = nullptr)

构造字符串列表模型采用给定 parent .

[explicit] QStringListModel:: QStringListModel (const QStringList & strings , QObject * parent = nullptr)

构造的字符串列表模型包含指定 strings 采用给定 parent .

[override virtual, since 6.0] bool QStringListModel:: clearItemData (const QModelIndex & index )

重实现: QAbstractItemModel::clearItemData (const QModelIndex &index).

该函数在 Qt 6.0 引入。

[override virtual] QVariant QStringListModel:: data (const QModelIndex & index , int role = Qt::DisplayRole) const

重实现: QAbstractItemModel::data(const QModelIndex &index, int role) const .

返回数据为指定 role ,从项采用给定 index .

若视图请求无效索引,则返回无效变体。

另请参阅 setData ().

[override virtual] Qt::ItemFlags QStringListModel:: flags (const QModelIndex & index ) const

重实现: QAbstractListModel::flags(const QModelIndex &index) const .

Returns the flags for the item with the given index .

Valid items are enabled, selectable, editable, drag enabled and drop enabled.

另请参阅 QAbstractItemModel::flags ().

[override virtual] bool QStringListModel:: insertRows ( int row , int count , const QModelIndex & parent = QModelIndex())

重实现: QAbstractItemModel::insertRows (int row, int count, const QModelIndex &parent).

插入 count rows into the model, beginning at the given row .

The parent index of the rows is optional and is only used for consistency with QAbstractItemModel . By default, a null index is specified, indicating that the rows are inserted in the top level of the model.

返回 true if the insertion was successful.

另请参阅 QAbstractItemModel::insertRows ().

[override virtual] QMap < int , QVariant > QStringListModel:: itemData (const QModelIndex & index ) const

重实现: QAbstractItemModel::itemData(const QModelIndex &index) const .

另请参阅 setItemData ().

[override virtual] bool QStringListModel:: moveRows (const QModelIndex & sourceParent , int sourceRow , int count , const QModelIndex & destinationParent , int destinationChild )

重实现: QAbstractItemModel::moveRows (const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild).

[override virtual] bool QStringListModel:: removeRows ( int row , int count , const QModelIndex & parent = QModelIndex())

重实现: QAbstractItemModel::removeRows (int row, int count, const QModelIndex &parent).

移除 count rows from the model, beginning at the given row .

The parent index of the rows is optional and is only used for consistency with QAbstractItemModel . By default, a null index is specified, indicating that the rows are removed in the top level of the model.

返回 true if the row removal was successful.

另请参阅 QAbstractItemModel::removeRows ().

[override virtual] int QStringListModel:: rowCount (const QModelIndex & parent = QModelIndex()) const

重实现: QAbstractItemModel::rowCount(const QModelIndex &parent) const .

Returns the number of rows in the model. This value corresponds to the number of items in the model's internal string list.

可选 parent argument is in most models used to specify the parent of the rows to be counted. Because this is a list if a valid parent is specified, the result will always be 0.

另请参阅 insertRows (), removeRows (),和 QAbstractItemModel::rowCount ().

[override virtual] bool QStringListModel:: setData (const QModelIndex & index , const QVariant & value , int role = Qt::EditRole)

重实现: QAbstractItemModel::setData (const QModelIndex &index, const QVariant &value, int role).

设置数据按指定 role 在项采用给定 index 在模型,以提供 value .

The dataChanged () 信号被发射若项改变。返回 true 后于发射 dataChanged () 信号。

另请参阅 Qt::ItemDataRole and data ().

[override virtual] bool QStringListModel:: setItemData (const QModelIndex & index , const QMap < int , QVariant > & roles )

重实现: QAbstractItemModel::setItemData (const QModelIndex &index, const QMap<int, QVariant> &roles).

roles 包含两者 Qt::DisplayRole and Qt::EditRole ,后者优先

另请参阅 itemData ().

void QStringListModel:: setStringList (const QStringList & strings )

将模型的内部字符串列表设为 strings 。模型将通知任何附加视图其底层数据已改变。

另请参阅 stringList () 和 dataChanged ().

[override virtual] QModelIndex QStringListModel:: sibling ( int row , int column , const QModelIndex & idx ) const

重实现: QAbstractListModel::sibling(int row, int column, const QModelIndex &idx) const .

[override virtual] void QStringListModel:: sort ( int column , Qt::SortOrder order = Qt::AscendingOrder)

重实现: QAbstractItemModel::sort (int column, Qt::SortOrder order).

QStringList QStringListModel:: stringList () const

返回模型用于存储数据的字符串列表。

另请参阅 setStringList ().

[override virtual] Qt::DropActions QStringListModel:: supportedDropActions () const

重实现: QAbstractItemModel::supportedDropActions() const .