Spec-Zone.ru › Qt 5.11

Класс QItemModelBarDataProxy

Класс-прокси для представления данных в моделях элементов с помощью Q3DBars. Подробнее...

Заголовок: #include <QItemModelBarDataProxy>
С момента: QtDataVisualization 1.0
Инициализируется из: ItemModelBarDataProxy
Наследуется от: QBarDataProxy
  • Список всех членов, включая унаследованные

Открытые типы

Перечисление MultiMatchBehavior { MMBFirst, MMBLast, MMBAverage, MMBCumulative }

Свойства

  • autoColumnCategories : bool
  • autoRowCategories : bool
  • columnCategories : QStringList
  • columnRole : QString
  • columnRolePattern : QRegExp
  • columnRoleReplace : QString
  • itemModel : QAbstractItemModel*
  • multiMatchBehavior : MultiMatchBehavior
  • rotationRole : QString
  • rotationRolePattern : QRegExp
  • rotationRoleReplace : QString
  • rowCategories : QStringList
  • rowRole : QString
  • rowRolePattern : QRegExp
  • rowRoleReplace : QString
  • useModelCategories : bool
  • valueRole : QString
  • valueRolePattern : QRegExp
  • valueRoleReplace : QString
  • 4 свойства унаследованы от QBarDataProxy
  • 1 свойство унаследовано от QAbstractDataProxy
  • 1 свойство унаследовано от QObject

Открытые функции

QItemModelBarDataProxy(QObject *parent = nullptr)
QItemModelBarDataProxy(QAbstractItemModel *itemModel, QObject *parent = nullptr)
QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &valueRole, QObject *parent = nullptr)
QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, QObject *parent = nullptr)
QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, const QString &rotationRole, QObject *parent = nullptr)
QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, const QStringList &rowCategories, const QStringList &columnCategories, QObject *parent = nullptr)
QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, const QString &rotationRole, const QStringList &rowCategories, const QStringList &columnCategories, QObject *parent = nullptr)
virtual ~QItemModelBarDataProxy()
bool autoColumnCategories() const
bool autoRowCategories() const
QStringList columnCategories() const
int columnCategoryIndex(const QString &category)
QString columnRole() const
QRegExp columnRolePattern() const
QString columnRoleReplace() const
QAbstractItemModel * itemModel() const
QItemModelBarDataProxy::MultiMatchBehavior multiMatchBehavior() const
void remap(const QString &rowRole, const QString &columnRole, const QString &valueRole, const QString &rotationRole, const QStringList &rowCategories, const QStringList &columnCategories)
QString rotationRole() const
QRegExp rotationRolePattern() const
QString rotationRoleReplace() const
QStringList rowCategories() const
int rowCategoryIndex(const QString &category)
QString rowRole() const
QRegExp rowRolePattern() const
QString rowRoleReplace() const
void setAutoColumnCategories(bool enable)
void setAutoRowCategories(bool enable)
void setColumnCategories(const QStringList &categories)
void setColumnRole(const QString &role)
void setColumnRolePattern(const QRegExp &pattern)
void setColumnRoleReplace(const QString &replace)
void setItemModel(QAbstractItemModel *itemModel)
void setMultiMatchBehavior(QItemModelBarDataProxy::MultiMatchBehavior behavior)
void setRotationRole(const QString &role)
void setRotationRolePattern(const QRegExp &pattern)
void setRotationRoleReplace(const QString &replace)
void setRowCategories(const QStringList &categories)
void setRowRole(const QString &role)
void setRowRolePattern(const QRegExp &pattern)
void setRowRoleReplace(const QString &replace)
void setUseModelCategories(bool enable)
void setValueRole(const QString &role)
void setValueRolePattern(const QRegExp &pattern)
void setValueRoleReplace(const QString &replace)
bool useModelCategories() const
QString valueRole() const
QRegExp valueRolePattern() const
QString valueRoleReplace() const
  • 28 общедоступных функций, унаследованных от QBarDataProxy
  • 1 общедоступная функция, унаследованная от QAbstractDataProxy
  • 34 общедоступных функции, унаследованных от QObject

Сигналы

void autoColumnCategoriesChanged(bool enable)
void autoRowCategoriesChanged(bool enable)
void columnCategoriesChanged()
void columnRoleChanged(const QString &role)
void columnRolePatternChanged(const QRegExp &pattern)
void columnRoleReplaceChanged(const QString &replace)
void itemModelChanged(const QAbstractItemModel *itemModel)
void multiMatchBehaviorChanged(QItemModelBarDataProxy::MultiMatchBehavior behavior)
void rotationRoleChanged(const QString &role)
void rotationRolePatternChanged(const QRegExp &pattern)
void rotationRoleReplaceChanged(const QString &replace)
void rowCategoriesChanged()
void rowRoleChanged(const QString &role)
void rowRolePatternChanged(const QRegExp &pattern)
void rowRoleReplaceChanged(const QString &replace)
void useModelCategoriesChanged(bool enable)
void valueRoleChanged(const QString &role)
void valueRolePatternChanged(const QRegExp &pattern)
void valueRoleReplaceChanged(const QString &replace)
  • 10 сигналов, унаследованных от QBarDataProxy
  • 2 сигнала, унаследованных от QObject

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

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

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

Класс-прокси для представления данных в моделях элементов с Q3DBars.

QItemModelBarDataProxy позволяет использовать модели, производные от QAbstractItemModel, в качестве источника данных для Q3DBars. Он использует определенные сопоставления для отображения данных из модели в строки, столбцы и значения графика Q3DBars.

Данные разрешаются асинхронно всякий раз, когда меняются сопоставления или модель. QBarDataProxy::arrayReset() генерируется, когда данные были разрешены. Однако, когда свойство useModelCategories установлено в true, изменения отдельных элементов разрешаются синхронно, если только та же рамка не содержит изменение, которое вызывает разрешение всей модели.

Сопоставления могут использоваться следующим образом:

  • Если свойство useModelCategories установлено в true, этот прокси напрямую сопоставит строки и столбцы QAbstractItemModel со строками и столбцами Q3DBars и по умолчанию использует значение, возвращаемое для Qt::DisplayRole, как значение столбца. Роль значения для использования может быть переопределена, если Qt::DisplayRole не подходит.
  • Для моделей, у которых данные не упорядочены в строки и столбцы, например, модели на основе QAbstractListModel, вы можете определить роль из модели для сопоставления каждой из строк, столбцов и значений.
  • Если вы не хотите включать все данные, содержащиеся в модели, или автоматически сгенерированные строки и столбцы не упорядочены так, как вам нужно, вы можете указать, какие строки и столбцы следует включить и в каком порядке, определив явный список категорий для строк и/или столбцов.

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

// By defining row and column categories, you tell the mapping which row and column each item
// belongs to. The categories must match the data stored in the model in the roles you define
// for row and column mapping. In this example we expect "year" role to return four digit year
// and "month" to return three letter designation for the month.
//
// An example of an item in model would be:
// Requested role -> Returned data
// "year" -> "2006" // Matches the first row category, so this item is added to the first row.
// "month" -> "jan" // Matches the first column category, so this item is added as first item in the row.
// "income" -> "12.1"
// "expenses" -> "9.2"
QStringList years;
QStringList months;
years << "2006" << "2007" << "2008" << "2009" << "2010" << "2011" << "2012";
months << "jan" << "feb" << "mar" << "apr" << "may" << "jun" << "jul" << "aug" << "sep" << "oct" << "nov" << "dec";

QItemModelBarDataProxy *proxy = new QItemModelBarDataProxy(customModel,
                                                           QStringLiteral("year"), // Row role
                                                           QStringLiteral("month"), // Column role
                                                           QStringLiteral("income"), // Value role
                                                           years, // Row categories
                                                           months); // Column categories

//...

// To display different data later, you can simply change the mapping.
proxy->setValueRole(QStringLiteral("expenses"));

Если поля модели не содержат данные в нужном формате, вы можете указать шаблон поиска с регулярными выражениями и правило замены для каждой роли, чтобы получить нужное значение в нужном формате. Дополнительную информацию о том, как работает замена с использованием регулярных выражений, см. в документации функции QString::replace(const QRegExp &rx, const QString &after). Обратите внимание, что использование регулярных выражений влияет на производительность, поэтому более эффективно использовать модели элементов, где поиск и замена не нужны для получения необходимых значений.

Пример использования шаблонов поиска в сочетании с ролями см. на странице Qt Quick 2 Bars Example.

См. также Qt Data Visualization Data Handling.

Документация типов членов

перечисление QItemModelBarDataProxy::MultiMatchBehavior

Типы поведения для свойства QItemModelBarDataProxy::multiMatchBehavior.

Постоянная Значение Описание
QItemModelBarDataProxy::MMBFirst 0 Значение берется из первого элемента в модели элементов, который соответствует каждой комбинации строки/столбца.
QItemModelBarDataProxy::MMBLast 1 Значение берется из последнего элемента в модели элементов, который соответствует каждой комбинации строки/столбца.
QItemModelBarDataProxy::MMBAverage 2 Значения из всех элементов, соответствующих каждой комбинации строки/столбца, усредняются, и среднее значение используется как значение столбца.
QItemModelBarDataProxy::MMBCumulative 3 Значения из всех элементов, соответствующих каждой комбинации строки/столбца, складываются, и сумма используется как значение столбца.

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

autoColumnCategories : bool

Это свойство содержит информацию о том, генерируются ли категории столбцов автоматически.

При установке в true, отображение игнорирует явно заданные категории столбцов и перезаписывает их автоматически сгенерированными значениями при разрешении данных из модели. По умолчанию true.

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

bool autoColumnCategories() const
void setAutoColumnCategories(bool enable)

Сигнал уведомления:

void autoColumnCategoriesChanged(bool enable)

autoRowCategories : bool

Это свойство содержит информацию о том, генерируются ли категории строк автоматически.

При установке в true, отображение игнорирует явно заданные категории строк и перезаписывает их автоматически сгенерированными значениями при разрешении данных из модели. По умолчанию true.

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

bool autoRowCategories() const
void setAutoRowCategories(bool enable)

Сигнал уведомления:

void autoRowCategoriesChanged(bool enable)

columnCategories : QStringList

Это свойство содержит категории столбцов для отображения.

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

QStringList columnCategories() const
void setColumnCategories(const QStringList &categories)

Сигнал уведомления:

void columnCategoriesChanged()

columnRole : QString

Это свойство содержит роль столбца для отображения.

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

QString columnRole() const
void setColumnRole(const QString &role)

Сигнал уведомления:

void columnRoleChanged(const QString &role)

columnRolePattern : QRegExp

Это свойство определяет, выполняется ли поиск и замена на значении, сопоставленном с ролью столбца, перед использованием его в качестве категории столбца.

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

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

QRegExp columnRolePattern() const
void setColumnRolePattern(const QRegExp &pattern)

Сигнал уведомления:

void columnRolePatternChanged(const QRegExp &pattern)

См. также columnRole и columnRoleReplace.

columnRoleReplace : QString

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

По умолчанию пустая строка. Дополнительную информацию о том, как работает поиск и замена с использованием регулярных выражений, см. в документации функции QString::replace(const QRegExp &rx, const QString &after).

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

QString columnRoleReplace() const
void setColumnRoleReplace(const QString &replace)

Сигнал уведомления:

void columnRoleReplaceChanged(const QString &replace)

См. также columnRole и columnRolePattern.

itemModel : QAbstractItemModel*

Это свойство содержит модель элементов.

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

QAbstractItemModel * itemModel() const
void setItemModel(QAbstractItemModel *itemModel)

Сигнал уведомления:

void itemModelChanged(const QAbstractItemModel *itemModel)

multiMatchBehavior : MultiMatchBehavior

Как обрабатываются несколько совпадений для каждой комбинации строки/столбца.

По умолчанию QItemModelBarDataProxy::MMBLast. Выбранное поведение влияет как на значение бара, так и на его поворот.

Например, у вас может быть модель элементов со временными данными, взятыми с неравномерными интервалами, и вы хотите визуализировать общее значение элементов данных каждого дня с помощью столбчатой диаграммы. Это можно сделать, указав категории строк и столбцов, чтобы каждый столбец представлял день, и установив multiMatchBehavior в QItemModelBarDataProxy::MMBCumulative.

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

QItemModelBarDataProxy::MultiMatchBehavior multiMatchBehavior() const
void setMultiMatchBehavior(QItemModelBarDataProxy::MultiMatchBehavior behavior)

Сигнал уведомления:

void multiMatchBehaviorChanged(QItemModelBarDataProxy::MultiMatchBehavior behavior)

rotationRole : QString

Это свойство содержит роль вращения для отображения.

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

QString rotationRole() const
void setRotationRole(const QString &role)

Сигнал уведомления:

void rotationRoleChanged(const QString &role)

rotationRolePattern : QRegExp

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

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

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

QRegExp rotationRolePattern() const
void setRotationRolePattern(const QRegExp &pattern)

Сигнал уведомления:

void rotationRolePatternChanged(const QRegExp &pattern)

См. также rotationRole и rotationRoleReplace.

rotationRoleReplace : QString

Это свойство содержит заменяемое содержимое, используемое совместно с rotationRolePattern.

По умолчанию пустая строка. Дополнительную информацию о работе поиска и замены с использованием регулярных выражений см. в документации функции QString::replace(const QRegExp &rx, const QString &after).

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

QString rotationRoleReplace() const
void setRotationRoleReplace(const QString &replace)

Сигнал уведомления:

void rotationRoleReplaceChanged(const QString &replace)

См. также rotationRole и rotationRolePattern.

rowCategories : QStringList

Это свойство содержит категории строк для сопоставления.

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

QStringList rowCategories() const
void setRowCategories(const QStringList &categories)

Сигнал уведомления:

void rowCategoriesChanged()

rowRole : QString

Это свойство содержит роль строки для сопоставления.

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

QString rowRole() const
void setRowRole(const QString &role)

Сигнал уведомления:

void rowRoleChanged(const QString &role)

rowRolePattern : QRegExp

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

Это свойство задает регулярное выражение для поиска части сопоставленного значения, подлежащей замене, а свойство rowRoleReplace содержит строку замены. Это полезно, например, для извлечения категорий строк и столбцов из одного поля времени в модели элементов.

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

QRegExp rowRolePattern() const
void setRowRolePattern(const QRegExp &pattern)

Сигнал уведомления:

void rowRolePatternChanged(const QRegExp &pattern)

См. также rowRole и rowRoleReplace.

rowRoleReplace : QString

Это свойство содержит заменяемое содержимое, используемое совместно с rowRolePattern.

По умолчанию пустая строка. Дополнительную информацию о работе поиска и замены с использованием регулярных выражений см. в документации функции QString::replace(const QRegExp &rx, const QString &after).

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

QString rowRoleReplace() const
void setRowRoleReplace(const QString &replace)

Сигнал уведомления:

void rowRoleReplaceChanged(const QString &replace)

См. также rowRole и rowRolePattern.

useModelCategories : bool

Это свойство определяет, используются ли роли и категории строк и столбцов для сопоставления.

Когда установлено в true, сопоставление игнорирует роли и категории строк и столбцов и использует строки и столбцы из модели вместо этого. По умолчанию false.

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

bool useModelCategories() const
void setUseModelCategories(bool enable)

Сигнал уведомления:

void useModelCategoriesChanged(bool enable)

valueRole : QString

Это свойство содержит роль значения для сопоставления.

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

QString valueRole() const
void setValueRole(const QString &role)

Сигнал уведомления:

void valueRoleChanged(const QString &role)

valueRolePattern : QRegExp

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

Это свойство задает регулярное выражение для поиска части сопоставленного значения, подлежащей замене, а свойство valueRoleReplace содержит строку замены.

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

QRegExp valueRolePattern() const
void setValueRolePattern(const QRegExp &pattern)

Сигнал уведомления:

void valueRolePatternChanged(const QRegExp &pattern)

См. также valueRole и valueRoleReplace.

valueRoleReplace : QString

Это свойство содержит заменяемое содержимое, используемое совместно с valueRolePattern.

По умолчанию пустая строка. Дополнительную информацию о работе поиска и замены с использованием регулярных выражений см. в документации функции QString::replace(const QRegExp &rx, const QString &after).

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

QString valueRoleReplace() const
void setValueRoleReplace(const QString &replace)

Сигнал уведомления:

void valueRoleReplaceChanged(const QString &replace)

См. также valueRole и valueRolePattern.

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

QItemModelBarDataProxy::QItemModelBarDataProxy(QObject *parent = nullptr)

Конструирует QItemModelBarDataProxy с необязательным parent.

QItemModelBarDataProxy::QItemModelBarDataProxy(QAbstractItemModel *itemModel, QObject *parent = nullptr)

Создаёт QItemModelBarDataProxy с itemModel и необязательным parent. Прокси не принимает во владение itemModel, так как обычно модели элементов принадлежат другим элементам управления.

QItemModelBarDataProxy::QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &valueRole, QObject *parent = nullptr)

Создаёт QItemModelBarDataProxy с itemModel и необязательным parent. Прокси не принимает во владение itemModel, так как обычно модели элементов принадлежат другим элементам управления. Роль значения устанавливается в valueRole. Этот конструктор предназначен для использования с моделями, данные которых уже правильно отсортированы по строкам и столбцам, поэтому он также устанавливает свойство useModelCategories в значение true.

QItemModelBarDataProxy::QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, QObject *parent = nullptr)

Создаёт QItemModelBarDataProxy с itemModel и необязательным parent. Прокси не принимает во владение itemModel, так как обычно модели элементов принадлежат другим элементам управления. Сопоставления ролей устанавливаются с помощью rowRole, columnRole и valueRole.

QItemModelBarDataProxy::QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, const QString &rotationRole, QObject *parent = nullptr)

Создаёт QItemModelBarDataProxy с itemModel и необязательным parent. Прокси не принимает во владение itemModel, так как обычно модели элементов принадлежат другим элементам управления. Сопоставления ролей устанавливаются с помощью rowRole, columnRole, valueRole и rotationRole.

QItemModelBarDataProxy::QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, const QStringList &rowCategories, const QStringList &columnCategories, QObject *parent = nullptr)

Создаёт QItemModelBarDataProxy с itemModel и необязательным parent. Прокси не принимает во владение itemModel, так как обычно модели элементов принадлежат другим элементам управления. Сопоставления ролей устанавливаются с помощью rowRole, columnRole и valueRole. Категории строк и столбцов устанавливаются с помощью rowCategories и columnCategories. Этот конструктор также устанавливает autoRowCategories и autoColumnCategories в значение false.

QItemModelBarDataProxy::QItemModelBarDataProxy(QAbstractItemModel *itemModel, const QString &rowRole, const QString &columnRole, const QString &valueRole, const QString &rotationRole, const QStringList &rowCategories, const QStringList &columnCategories, QObject *parent = nullptr)

Создаёт QItemModelBarDataProxy с itemModel и необязательным parent. Прокси не принимает во владение itemModel, так как обычно модели элементов принадлежат другим элементам управления. Сопоставления ролей устанавливаются с помощью rowRole, columnRole, valueRole и rotationRole. Категории строк и столбцов устанавливаются с помощью rowCategories и columnCategories. Этот конструктор также устанавливает autoRowCategories и autoColumnCategories в значение false.

[virtual] QItemModelBarDataProxy::~QItemModelBarDataProxy()

Уничтожает QItemModelBarDataProxy.

int QItemModelBarDataProxy::columnCategoryIndex(const QString &category)

Возвращает индекс указанной category в списке категорий столбцов. Если категория не найдена, возвращается -1.

Примечание: Если используется автоматическое создание категорий столбцов, этот метод не вернёт действительный индекс до первого разрешения данных в модели.

Примечание: К этой функции можно обратиться через систему метаобъектов и из QML. См. Q_INVOKABLE.

void QItemModelBarDataProxy::remap(const QString &rowRole, const QString &columnRole, const QString &valueRole, const QString &rotationRole, const QStringList &rowCategories, const QStringList &columnCategories)

Изменяет rowRole, columnRole, valueRole, rotationRole, rowCategories и columnCategories на указанные значения.

int QItemModelBarDataProxy::rowCategoryIndex(const QString &category)

Возвращает индекс указанной category в списке категорий строк. Если список категорий строк пуст, возвращается -1.

Примечание: Если используется автоматическое создание категорий строк, этот метод не вернёт действительный индекс до первого разрешения данных в модели.

Примечание: К этой функции можно обратиться через систему метаобъектов и из QML. См. Q_INVOKABLE.

void QItemModelBarDataProxy::setItemModel(QAbstractItemModel *itemModel)

Устанавливает модель элементов в itemModel. Не принимает во владение модель, но подключается к ней, чтобы отслеживать изменения.

Примечание: Функция-сеттер для свойства itemModel.

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

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

Spec-Zone.ru

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