Spec-Zone.ru › Qt 5.12

Класс QStandardItemModel

Класс QStandardItemModel предоставляет универсальную модель для хранения пользовательских данных. Подробнее...

Заголовок: #include <QStandardItemModel>
qmake: QT += gui
Наследуется от: QAbstractItemModel
  • Список всех членов, включая наследуемые
  • Устаревшие члены

Свойства

  • sortRole : int
  • 1 свойство унаследовано от QObject

Общедоступные функции

QStandardItemModel(QObject *parent = nullptr)
QStandardItemModel(int rows, int columns, QObject *parent = nullptr)
virtual ~QStandardItemModel()
void appendColumn(const QList<QStandardItem *> &items)
void appendRow(const QList<QStandardItem *> &items)
void appendRow(QStandardItem *item)
void clear()
bool clearItemData(const QModelIndex &index)
QList<QStandardItem *> findItems(const QString &text, Qt::MatchFlags flags = Qt::MatchExactly, int column = 0) const
QStandardItem * horizontalHeaderItem(int column) const
QModelIndex indexFromItem(const QStandardItem *item) const
void insertColumn(int column, const QList<QStandardItem *> &items)
bool insertColumn(int column, const QModelIndex &parent = QModelIndex())
void insertRow(int row, const QList<QStandardItem *> &items)
void insertRow(int row, QStandardItem *item)
bool insertRow(int row, const QModelIndex &parent = QModelIndex())
QStandardItem * invisibleRootItem() const
QStandardItem * item(int row, int column = 0) const
QStandardItem * itemFromIndex(const QModelIndex &index) const
const QStandardItem * itemPrototype() const
void setColumnCount(int columns)
void setHorizontalHeaderItem(int column, QStandardItem *item)
void setHorizontalHeaderLabels(const QStringList &labels)
void setItem(int row, int column, QStandardItem *item)
void setItem(int row, QStandardItem *item)
void setItemPrototype(const QStandardItem *item)
void setItemRoleNames(const QHash<int, QByteArray> &roleNames)
void setRowCount(int rows)
void setSortRole(int role)
void setVerticalHeaderItem(int row, QStandardItem *item)
void setVerticalHeaderLabels(const QStringList &labels)
int sortRole() const
QList<QStandardItem *> takeColumn(int column)
QStandardItem * takeHorizontalHeaderItem(int column)
QStandardItem * takeItem(int row, int column = 0)
QList<QStandardItem *> takeRow(int row)
QStandardItem * takeVerticalHeaderItem(int row)
QStandardItem * verticalHeaderItem(int row) const

Реализованные общедоступные функции

виртуальный int columnCount(const QModelIndex &parent = QModelIndex()) const override
виртуальный QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override
виртуальный bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
виртуальный Qt::ItemFlags flags(const QModelIndex &index) const override
виртуальный bool hasChildren(const QModelIndex &parent = QModelIndex()) const override
виртуальный QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override
виртуальный QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override
виртуальный bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()) override
виртуальный bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) override
виртуальный QMap<int, QVariant> itemData(const QModelIndex &index) const override
виртуальный QMimeData * mimeData(const QModelIndexList &indexes) const override
виртуальный QStringList mimeTypes() const override
виртуальный QModelIndex parent(const QModelIndex &child) const override
виртуальный bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()) override
виртуальный bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override
виртуальный int rowCount(const QModelIndex &parent = QModelIndex()) const override
виртуальный bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override
виртуальный bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole) override
виртуальный bool setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles) override
виртуальный QModelIndex sibling(int row, int column, const QModelIndex &idx) const override
виртуальный void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override
виртуальный Qt::DropActions supportedDropActions() const override
  • 40 публичные функции, унаследованные от QAbstractItemModel
  • 31 публичные функции, унаследованные от QObject

Сигналы

void itemChanged(QStandardItem *item)
  • 18 сигналов, унаследованных от QAbstractItemModel
  • 2 сигнала, унаследованные от QObject

Статические публичные члены

const QMetaObject staticMetaObject
  • 9 статических публичных членов, унаследованных от QObject

Дополнительные унаследованные члены

  • 2 публичных слота, унаследованные от QAbstractItemModel
  • 1 публичный слот, унаследованный от QObject
  • 19 защищённых функций, унаследованных от QAbstractItemModel
  • 9 защищённых функций, унаследованных от QObject
  • 1 защищённый слот, унаследованный от QAbstractItemModel

Подробное описание

Класс QStandardItemModel предоставляет обобщённую модель для хранения пользовательских данных.

QStandardItemModel может использоваться в качестве хранилища стандартных типов данных Qt. Это один из классов модели/представления и входит в фреймворк Qt модель/представление.

QStandardItemModel использует классический подход на основе элементов для работы с моделью. Элементы в QStandardItemModel предоставляются классом QStandardItem.

QStandardItemModel реализует интерфейс QAbstractItemModel, что означает, что модель может использоваться для предоставления данных в любом представлении, поддерживающем этот интерфейс (например, QListView, QTableView и QTreeView, и ваши собственные пользовательские представления). Для повышения производительности и гибкости вы можете создать подкласс QAbstractItemModel, чтобы предоставить поддержку различных типов хранилищ данных. Например, QDirModel предоставляет интерфейс модели для файловой системы.

Когда вам нужна таблица или дерево, вы обычно создаёте пустой QStandardItemModel и используете appendRow() для добавления элементов в модель, а item() для доступа к элементу. Если ваша модель представляет собой таблицу, вы обычно передаёте размеры таблицы в конструктор QStandardItemModel и используете setItem() для размещения элементов в таблице. Вы также можете использовать setRowCount() и setColumnCount() для изменения размеров модели. Для вставки элементов используйте insertRow() или insertColumn(), а для удаления элементов используйте removeRow() или removeColumn().

Вы можете задать заголовки вашей модели с помощью setHorizontalHeaderLabels() и setVerticalHeaderLabels().

Вы можете искать элементы в модели с помощью findItems(), и сортировать модель, вызвав sort().

Вызовите clear() для удаления всех элементов из модели.

Пример использования QStandardItemModel для создания таблицы:

QStandardItemModel model(4, 4);
for (int row = 0; row < 4; ++row) {
    for (int column = 0; column < 4; ++column) {
        QStandardItem *item = new QStandardItem(QString("row %0, column %1").arg(row).arg(column));
        model.setItem(row, column, item);
    }
}

Пример использования QStandardItemModel для создания дерева:

QStandardItemModel model;
QStandardItem *parentItem = model.invisibleRootItem();
for (int i = 0; i < 4; ++i) {
    QStandardItem *item = new QStandardItem(QString("item %0").arg(i));
    parentItem->appendRow(item);
    parentItem = item;
}

После установки модели на представление, вы обычно хотите реагировать на действия пользователя, например, на щелчок по элементу. Поскольку QAbstractItemView предоставляет сигналы и функции на основе QModelIndex, вам нужен способ получения QStandardItem, который соответствует заданному QModelIndex, и наоборот. itemFromIndex() и indexFromItem() предоставляют это отображение. Типичное использование itemFromIndex() включает получение элемента в текущем индексе в представлении и получение элемента, соответствующего индексу, переданному сигналом QAbstractItemView, например, QAbstractItemView::clicked(). Сначала подключите сигнал представления к слоту в вашем классе:

QTreeView *treeView = new QTreeView(this);
treeView->setModel(myStandardItemModel);
connect(treeView, SIGNAL(clicked(QModelIndex)),
        this, SLOT(clicked(QModelIndex)));

При получении сигнала вызываете itemFromIndex() с заданным индексом модели, чтобы получить указатель на элемент:

void MyWidget::clicked(const QModelIndex &index)
{
    QStandardItem *item = myStandardItemModel->itemFromIndex(index);
    // Do stuff with the item ...
}

И наоборот, вы должны получить QModelIndex элемента, когда хотите вызвать функцию модели/представления, которая принимает индекс в качестве аргумента. Вы можете получить индекс, используя функцию модели indexFromItem() или, что эквивалентно, вызвав QStandardItem::index():

treeView->scrollTo(item->index());

Конечно, вы не обязаны использовать подход, основанный на элементе; вместо этого вы можете полностью полагаться на интерфейс QAbstractItemModel при работе с моделью или использовать комбинацию этих двух подходов по мере необходимости.

См. также QStandardItem, Программирование с помощью моделей/представлений, QAbstractItemModel, Пример простой модели дерева и Удобные классы представлений элементов.

Документация свойств

sortRole : int

Это свойство содержит роль элемента, используемую для запроса данных модели при сортировке элементов

Значение по умолчанию — Qt::DisplayRole.

Это свойство было добавлено в Qt 4.2.

Функции доступа:

int sortRole() const
void setSortRole(int role)

См. также sort() и QStandardItem::sortChildren().

Документация функций-членов

QStandardItemModel::QStandardItemModel(QObject *parent = nullptr)

Создает новую модель элементов с заданным parent.

QStandardItemModel::QStandardItemModel(int rows, int columns, QObject *parent = nullptr)

Создает новую модель элементов, которая изначально содержит rows строк и columns столбцов и имеет заданный parent.

[virtual] QStandardItemModel::~QStandardItemModel()

Удаляет модель. Модель уничтожает все свои элементы.

void QStandardItemModel::appendColumn(const QList<QStandardItem *> &items)

Добавляет столбец, содержащий items. Если необходимо, количество строк увеличивается до размера items.

Эта функция была добавлена в Qt 4.2.

См. также insertColumn() и appendRow().

void QStandardItemModel::appendRow(const QList<QStandardItem *> &items)

Добавляет строку, содержащую items. Если необходимо, количество столбцов увеличивается до размера items.

Эта функция была добавлена в Qt 4.2.

См. также insertRow() и appendColumn().

void QStandardItemModel::appendRow(QStandardItem *item)

Это перегруженная функция.

При создании списка или дерева, имеющего только один столбец, эта функция предоставляет удобный способ добавления одного нового элемента item.

Эта функция была добавлена в Qt 4.2.

void QStandardItemModel::clear()

Удаляет все элементы (включая заголовки) из модели и устанавливает количество строк и столбцов в ноль.

См. также removeColumns() и removeRows().

bool QStandardItemModel::clearItemData(const QModelIndex &index)

Удаляет данные, хранящиеся во всех ролях для данного index. Возвращает true , если index действителен и данные были очищены, false в противном случае.

Эта функция была добавлена в Qt 5.12.

См. также setData() и data().

[override virtual] int QStandardItemModel::columnCount(const QModelIndex &parent = QModelIndex()) const

Переопределено из QAbstractItemModel::columnCount().

См. также setColumnCount().

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

Переопределено из QAbstractItemModel::data().

См. также setData().

[override virtual] bool QStandardItemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)

Переопределено из QAbstractItemModel::dropMimeData().

QList<QStandardItem *> QStandardItemModel::findItems(const QString &text, Qt::MatchFlags flags = Qt::MatchExactly, int column = 0) const

Возвращает список элементов, которые соответствуют заданному text, используя заданные flags, в заданном column.

Эта функция была добавлена в Qt 4.2.

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

Переопределено из QAbstractItemModel::flags().

[override virtual] bool QStandardItemModel::hasChildren(const QModelIndex &parent = QModelIndex()) const

Переопределено из QAbstractItemModel::hasChildren().

[override virtual] QVariant QStandardItemModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const

Переопределено из QAbstractItemModel::headerData().

См. также setHeaderData().

QStandardItem *QStandardItemModel::horizontalHeaderItem(int column) const

Возвращает элемент заголовка столбца для column, если он был задан; в противном случае возвращает nullptr.

Эта функция была добавлена в Qt 4.2.

См. также setHorizontalHeaderItem() и verticalHeaderItem().

[override virtual] QModelIndex QStandardItemModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const

Переопределено из QAbstractItemModel::index().

QModelIndex QStandardItemModel::indexFromItem(const QStandardItem *item) const

Возвращает QModelIndex, связанный с данным элементом item.

Используйте эту функцию, когда нужно выполнить операцию, требующую QModelIndex элемента, например, QAbstractItemView::scrollTo(). QStandardItem::index() предоставляется для удобства; она эквивалентна вызову этой функции.

Эта функция была добавлена в Qt 4.2.

См. также itemFromIndex() и QStandardItem::index().

void QStandardItemModel::insertColumn(int column, const QList<QStandardItem *> &items)

Вставляет столбец в column, содержащий items. Если необходимо, количество строк увеличивается до размера items.

Эта функция была добавлена в Qt 4.2.

См. также takeColumn(), appendColumn() и insertRow().

bool QStandardItemModel::insertColumn(int column, const QModelIndex &parent = QModelIndex())

Вставляет один столбец перед заданным столбцом column в дочерние элементы parent, указанные. Возвращает true, если столбец был вставлен; в противном случае возвращает false.

См. также insertColumns(), insertRow(), и removeColumn().

[override virtual] bool QStandardItemModel::insertColumns(int column, int count, const QModelIndex &parent = QModelIndex())

Переопределено из QAbstractItemModel::insertColumns().

void QStandardItemModel::insertRow(int row, const QList<QStandardItem *> &items)

Вставляет строку в позиции row, содержащую items. При необходимости, количество столбцов увеличивается до размера items.

Эта функция была добавлена в Qt 4.2.

См. также takeRow(), appendRow(), и insertColumn().

void QStandardItemModel::insertRow(int row, QStandardItem *item)

Это перегруженная функция.

Вставляет строку в позиции row, содержащую item.

При построении списка или дерева, имеющего только один столбец, эта функция предоставляет удобный способ добавления одного нового элемента.

Эта функция была добавлена в Qt 4.2.

bool QStandardItemModel::insertRow(int row, const QModelIndex &parent = QModelIndex())

Вставляет одну строку перед заданной строкой row в дочерних элементах parent. Возвращает true, если строка была вставлена; в противном случае возвращает false.

См. также insertRows(), insertColumn(), и removeRow().

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

Переопределено из QAbstractItemModel::insertRows().

QStandardItem *QStandardItemModel::invisibleRootItem() const

Возвращает скрытый корневой элемент модели.

Скрытый корневой элемент обеспечивает доступ к верхним элементам модели через API QStandardItem, что позволяет создавать функции, которые могут обрабатывать верхние элементы и их потомков одинаковым образом; например, рекурсивные функции, использующие модель дерева.

Примечание: Вызов index() на объекте QStandardItem, полученном с помощью этой функции, некорректен.

Эта функция была добавлена в Qt 4.2.

QStandardItem *QStandardItemModel::item(int row, int column = 0) const

Возвращает элемент для заданного row и column, если он был установлен; в противном случае возвращает nullptr.

Эта функция была добавлена в Qt 4.2.

См. также setItem(), takeItem(), и itemFromIndex().

[signal] void QStandardItemModel::itemChanged(QStandardItem *item)

Этот сигнал испускается всякий раз, когда данные item изменились.

Эта функция была добавлена в Qt 4.2.

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

Переопределено из QAbstractItemModel::itemData().

См. также setItemData().

QStandardItem *QStandardItemModel::itemFromIndex(const QModelIndex &index) const

Возвращает указатель на QStandardItem, связанный с данным index.

Вызов этой функции обычно является начальным шагом при обработке сигналов на основе QModelIndex от представления, таких как QAbstractItemView::activated(). В вашем слоте вы вызываете itemFromIndex(), используя QModelIndex, переданную сигналом в качестве аргумента, чтобы получить указатель на соответствующий QStandardItem.

Обратите внимание, что эта функция лениво создаст элемент для индекса (используя itemPrototype()), и добавит его в таблицу дочерних элементов родительского элемента, если в этом индексе ещё нет элемента.

Если index является недействительным индексом, эта функция возвращает nullptr.

Эта функция была добавлена в Qt 4.2.

См. также indexFromItem().

const QStandardItem *QStandardItemModel::itemPrototype() const

Возвращает шаблон элемента, используемый моделью. Модель использует шаблон элемента как фабрику элементов при необходимости создания новых элементов по запросу (например, когда виджет или делегат элемента вызывают setData()).

Эта функция была добавлена в Qt 4.2.

См. также setItemPrototype().

[override virtual] QMimeData *QStandardItemModel::mimeData(const QModelIndexList &indexes) const

Переопределено из QAbstractItemModel::mimeData().

[override virtual] QStringList QStandardItemModel::mimeTypes() const

Переопределено из QAbstractItemModel::mimeTypes().

[override virtual] QModelIndex QStandardItemModel::parent(const QModelIndex &child) const

Переопределено из QAbstractItemModel::parent().

[override virtual] bool QStandardItemModel::removeColumns(int column, int count, const QModelIndex &parent = QModelIndex())

Переопределено из QAbstractItemModel::removeColumns().

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

Переопределено из QAbstractItemModel::removeRows().

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

Переопределено из QAbstractItemModel::rowCount().

См. также setRowCount().

void QStandardItemModel::setColumnCount(int columns)

Устанавливает количество столбцов в этой модели в columns. Если это значение меньше, чем columnCount(), данные в ненужных столбцах удаляются.

Эта функция была добавлена в Qt 4.2.

См. также columnCount() и setRowCount().

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

Переопределено из QAbstractItemModel::setData().

См. также data().

[override virtual] bool QStandardItemModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole)

Переопределено из QAbstractItemModel::setHeaderData().

См. также headerData().

void QStandardItemModel::setHorizontalHeaderItem(int column, QStandardItem *item)

Устанавливает горизонтальный заголовок для column в item. Модель принимает владение элементом. При необходимости, количество столбцов увеличивается для размещения элемента. Предыдущий элемент заголовка (если он был) удаляется.

Эта функция была добавлена в Qt 4.2.

См. также horizontalHeaderItem(), setHorizontalHeaderLabels() и setVerticalHeaderItem().

void QStandardItemModel::setHorizontalHeaderLabels(const QStringList &labels)

Устанавливает метки горизонтальной заголовка с помощью labels. При необходимости, количество столбцов увеличивается до размера labels.

Эта функция была добавлена в Qt 4.2.

См. также setHorizontalHeaderItem().

void QStandardItemModel::setItem(int row, int column, QStandardItem *item)

Устанавливает элемент для заданной row и column в item. Модель принимает владение элементом. При необходимости, количество строк и столбцов увеличивается, чтобы вместить элемент. Предыдущий элемент в заданном месте (если он был) удаляется.

Эта функция была добавлена в Qt 4.2.

См. также item().

void QStandardItemModel::setItem(int row, QStandardItem *item)

Это перегруженная функция.

bool QStandardItemModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles)

Переопределено из QAbstractItemModel::setItemData().

См. также itemData().

void QStandardItemModel::setItemPrototype(const QStandardItem *item)

Устанавливает прототип элемента для модели на указанный item. Модель принимает владение прототипом.

Прототип элемента действует как фабрика QStandardItem, используя функцию QStandardItem::clone(). Чтобы предоставить свой собственный прототип, подклассируйте QStandardItem, переопределите QStandardItem::clone() и установите прототип, являющийся экземпляром вашего пользовательского класса. Всякий раз, когда QStandardItemModel нуждается в создании элемента по требованию (например, когда представление или делегат элемента вызывают setData()), новые элементы будут экземплярами вашего пользовательского класса.

Эта функция была добавлена в Qt 4.2.

См. также itemPrototype() и QStandardItem::clone().

void QStandardItemModel::setItemRoleNames(const QHash<int, QByteArray> &roleNames)

Устанавливает имена ролей элемента в roleNames.

void QStandardItemModel::setRowCount(int rows)

Устанавливает количество строк в этой модели на rows. Если это значение меньше, чем rowCount(), данные в ненужных строках удаляются.

Эта функция была добавлена в Qt 4.2.

См. также rowCount() и setColumnCount().

void QStandardItemModel::setVerticalHeaderItem(int row, QStandardItem *item)

Устанавливает вертикальный элемент заголовка для row в item. Модель принимает владение элементом. При необходимости, количество строк увеличивается, чтобы вместить элемент. Предыдущий элемент заголовка (если он был) удаляется.

Эта функция была добавлена в Qt 4.2.

См. также verticalHeaderItem(), setVerticalHeaderLabels() и setHorizontalHeaderItem().

void QStandardItemModel::setVerticalHeaderLabels(const QStringList &labels)

Устанавливает метки вертикального заголовка с помощью labels. При необходимости, количество строк увеличивается до размера labels.

Эта функция была добавлена в Qt 4.2.

См. также setVerticalHeaderItem().

QModelIndex QStandardItemModel::sibling(int row, int column, const QModelIndex &idx) const

Переопределено из QAbstractItemModel::sibling().

void QStandardItemModel::sort(int column, Qt::SortOrder order = Qt::AscendingOrder)

Переопределено из QAbstractItemModel::sort().

Qt::DropActions QStandardItemModel::supportedDropActions() const

Переопределено из QAbstractItemModel::supportedDropActions().

QStandardItemModel поддерживает копирование и перемещение.

QList<QStandardItem *> QStandardItemModel::takeColumn(int column)

Удаляет заданный column, не удаляя элементы столбца, и возвращает список указателей на удаленные элементы. Модель высвобождает владение элементами. Для элементов в столбце, которые не были установлены, соответствующие указатели в списке будут 0.

Эта функция была добавлена в Qt 4.2.

См. также takeRow().

QStandardItem *QStandardItemModel::takeHorizontalHeaderItem(int column)

Удаляет горизонтальный элемент заголовка в column из заголовка, не удаляя его, и возвращает указатель на элемент. Модель высвобождает владение элементом.

Эта функция была добавлена в Qt 4.2.

См. также horizontalHeaderItem() и takeVerticalHeaderItem().

QStandardItem *QStandardItemModel::takeItem(int row, int column = 0)

Удаляет элемент в (row, column), не удаляя его. Модель высвобождает владение элементом.

Эта функция была добавлена в Qt 4.2.

См. также item(), takeRow() и takeColumn().

QList<QStandardItem *> QStandardItemModel::takeRow(int row)

Удаляет заданную row, не удаляя элементы строки, и возвращает список указателей на удаленные элементы. Модель высвобождает владение элементами. Для элементов в строке, которые не были установлены, соответствующие указатели в списке будут 0.

Эта функция была добавлена в Qt 4.2.

См. также takeColumn().

QStandardItem *QStandardItemModel::takeVerticalHeaderItem(int row)

Удаляет вертикальный элемент заголовка в row из заголовка, не удаляя его, и возвращает указатель на элемент. Модель высвобождает владение элементом.

Эта функция была добавлена в Qt 4.2.

См. также verticalHeaderItem() и takeHorizontalHeaderItem().

QStandardItem *QStandardItemModel::verticalHeaderItem(int row) const

Возвращает вертикальный элемент заголовка для строки row, если он был установлен; в противном случае возвращает nullptr.

Эта функция была добавлена в Qt 4.2.

См. также setVerticalHeaderItem() и horizontalHeaderItem().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qstandarditemmodel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API