QStringListModel类
QStringListModel类提供了一个模型,为视图提供字符串。更多信息...
头文件 | #include <QStringListModel> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
继承自 | QAbstractListModel |
实现由 |
公开函数
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是一个非常实用的可编辑模型,适用于需要在视图小部件中显示多个字符串的简单场景,例如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以及模型类。
成员函数文档
[明确构造]
QStringListModel::QStringListModel(QObject *parent = nullptr)
使用给定的parent构建字符串列表模型。
[明确构造]
QStringListModel::QStringListModel(const QStringList &strings, QObject *parent = nullptr)
使用给定的parent构建包含指定strings的字符串列表模型。
[重写虚拟,自6.0起]
bool QStringListModel::clearItemData(const QModelIndex &index)
重新实现了:QAbstractItemModel::clearItemData(const QModelIndex &index)。
此函数是在Qt 6.0引入的。
[重写虚拟]
QVariant QStringListModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const
重新实现了:QAbstractItemModel::data(const QModelIndex &index, int role) const。
从给定的index项返回指定role的数据。
如果视图请求一个无效的索引,则返回一个无效的变体。
也请参阅setData。
[重写虚拟]
Qt::ItemFlags QStringListModel::flags(const QModelIndex &index) const
重实现:QAbstractListModel::flags(const QModelIndex &index) const.
返回给定 index 的项目的标志。
有效项目包括启用、可选、可编辑、拖放启用和放下启用。
另请参阅QAbstractItemModel::flags().
[重写虚函数]
bool QStringListModel::insertRows(int row, int count, const QModelIndex &parent = QModelIndex())
重实现:QAbstractItemModel::insertRows(int row, int count, const QModelIndex &parent).
在给定的位置插入 count 行到模型中。
行的 parent 指数是可选的,仅用于与 QAbstractItemModel 保持一致性。默认情况下,指定空索引,表示行将插入到模型的顶层。
如果插入成功,则返回 true
。
另请参阅QAbstractItemModel::insertRows().
[重写虚函数]
QMap<int, QVariant> QStringListModel::itemData(const QModelIndex &index) const
重实现:QAbstractItemModel::itemData(const QModelIndex &index) const.
另请参阅setItemData().
[重写虚函数]
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).
[重写虚函数]
bool QStringListModel::removeRows(int row, int count, const QModelIndex &parent = QModelIndex())
重实现:QAbstractItemModel::removeRows(int row, int count, const QModelIndex &parent).
从模型中删除从给定 row 开始的 count 行。
行的 parent 指数是可选的,仅用于与 QAbstractItemModel 保持一致性。默认情况下,指定空索引,表示行将删除在模型顶级。
如果行删除成功,则返回 true
。
另请参阅QAbstractItemModel::removeRows().
[重写虚函数]
int QStringListModel::rowCount(const QModelIndex &parent = QModelIndex()) const
重实现:QAbstractItemModel::rowCount(const QModelIndex &parent) const.
返回模型中的行数。该值对应于模型内部字符串列表中的项目数。
可选的 parent 参数在大多数模型中用于指定要计数的行的父级。因为这是一个列表,如果指定了有效的父级,则结果始终为 0。
另见 insertRows(),removeRows() 和 QAbstractItemModel::rowCount()。
[覆盖虚拟]
bool QStringListModel::setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole)
重新实现: QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role)。
将模型中特定 index 的项的 role 指定的数据设置为 value。
如果项发生了变化,将发出 dataChanged() 信号。在发出 dataChanged() 信号后返回 true
。
另见 Qt::ItemDataRole 和 data。
[覆盖虚拟]
bool QStringListModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles)
重新实现: QAbstractItemModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles)。
如果 roles 包含 Qt::DisplayRole 和 Qt::EditRole,则后者的优先级更高
另见 itemData。
void QStringListModel::setStringList(const QStringList &strings)
将模型内部字符串列表设置为 strings。模型将通知任何附加的视图其底层数据已更改。
另见 stringList() 和 dataChanged。
[覆盖虚拟]
QModelIndex QStringListModel::sibling(int row, int column, const QModelIndex &idx) const
重新实现: QAbstractListModel::sibling(int row, int column, const QModelIndex &idx) const。
[覆盖虚拟]
void QStringListModel::sort(int column, Qt::SortOrder order = Qt::AscendingOrder)
重新实现: QAbstractItemModel::sort(int column, Qt::SortOrder order)。
QStringList QStringListModel::stringList() const
返回模型用于存储数据的字符串列表。
另见 setStringList。
[覆盖虚函数]
Qt::DropActions QStringListModel::supportedDropActions() const
© 2024 The Qt Company Ltd. 本文档中的文档贡献归各自的版权所有者所有。本提供的文档根据自由软件基金会发布的 GNU自由文档许可证第1.3版 的条款许可。Qt及其相关标志是芬兰及其它国家和地区The Qt Company Ltd的商标。所有其他商标属其各自的所有者。