Spec-Zone.ru › Qt 5.12

Класс QXmlNodeModelIndex

Класс QXmlNodeModelIndex идентифицирует узел в модели узлов XML, унаследованной от QAbstractXmlNodeModel. Подробнее...

Заголовок: #include <QXmlNodeModelIndex>
qmake: QT += xmlpatterns
С момента: Qt 4.4
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются реентерабельными.

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

Перечисление DocumentOrder { Precedes, Follows, Is }
Тип List
Перечисление NodeKind { Attribute, Text, Comment, Document, ..., ProcessingInstruction }

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

QXmlNodeModelIndex()
QXmlNodeModelIndex(const QXmlNodeModelIndex &other)
qint64 additionalData() const
qint64 data() const
void * internalPointer() const
bool isNull() const
const QAbstractXmlNodeModel * model() const
bool operator!=(const QXmlNodeModelIndex &other) const
bool operator==(const QXmlNodeModelIndex &other) const

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

Класс QXmlNodeModelIndex идентифицирует узел в модели узлов XML, унаследованной от QAbstractXmlNodeModel.

QXmlNodeModelIndex — это индекс в модели узлов XML. Он содержит:

  • Указатель на модель узлов XML, которая возвращается функцией model(), и
  • Некоторые данные, которые возвращаются функциями data(), internalPointer() и additionalData().

Поскольку класс QXmlNodeModelIndex преднамеренно является простым классом, он не имеет функций-членов для доступа к свойствам узлов. Например, у него нет функций для получения имени узла или его списка атрибутов или дочерних узлов. Если вам нужно извлечь такую информацию из результатов запроса, есть два способа.

  • Отправьте результат вашего XQuery в приемник XML, или
  • Позвольте вашему XQuery выполнить всю работу для получения желаемого результата.

Второй случай объясняется на примере. Предположим, вы хотите заполнить список виджетов значениями определенных атрибутов из набора элементов результата. Вы можете написать XQuery для возврата набора элементов, а затем написать код для итерации по элементам результата, получения их атрибутов и извлечения необходимых строковых значений. Но более простой способ — просто дополнить ваш XQuery для поиска необходимых значений атрибутов. Затем всё, что вам нужно сделать, это оценить XQuery с помощью версии QXmlQuery::evaluateTo(), которая заполняет QStringList, которую вы можете напрямую отправить в свой виджет.

QXmlNodeModelIndex не накладывает никаких ограничений на data значение, которое должен содержать QXmlNodeModelIndex. Значение данных оставляется на усмотрение связанной модели узлов. Поскольку QXmlNodeModelIndex зависит от конкретного подкласса QAbstractXmlNodeModel для своего существования, единственный способ создать экземпляр QXmlNodeModelIndex — попросить модель узлов создать его для вас с помощью QAbstractXmlNodeModel::createIndex(). Поскольку эта функция защищена, обычно рекомендуется написать публичную функцию, которая создаёт QXmlNodeModelIndex из аргументов, подходящих для вашей конкретной модели узлов.

Индекс узла, созданный по умолчанию, считается нулевым, т. е. isNull() возвращает true.

QXmlNodeModelIndex и QAbstractXmlNodeModel следуют той же схеме проектирования, что и QModelIndex и QAbstractItemModel.

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

Перечисление QXmlNodeModelIndex::DocumentOrder

Идентифицирует конкретный оператор сравнения узлов, который следует использовать.

Константа Значение Описание
QXmlNodeModelIndex::Precedes -1 Указывает оператор \<\<. Проверяет, предшествует ли первый операнд второму в документе.
QXmlNodeModelIndex::Follows 1 Указывает оператор \>\>. Проверяет, следует ли первый операнд за вторым в документе.
QXmlNodeModelIndex::Is 0 Указывает оператор is. Проверяет, имеют ли два узла одинаковую идентичность узла.

Тип QXmlNodeModelIndex::List

Тип-синоним для QList<QXmlNodeModelIndex>.

Перечисление QXmlNodeModelIndex::NodeKind

Идентифицирует вид узла.

Константа Значение Описание
QXmlNodeModelIndex::Attribute 1 Идентифицирует узел атрибута
QXmlNodeModelIndex::Text 64 Идентифицирует текстовый узел
QXmlNodeModelIndex::Comment 2 Идентифицирует узел комментария
QXmlNodeModelIndex::Document 4 Идентифицирует узел документа
QXmlNodeModelIndex::Element 8 Идентифицирует узел элемента
QXmlNodeModelIndex::Namespace 16 Идентифицирует узел пространства имён
QXmlNodeModelIndex::ProcessingInstruction 32 Идентифицирует инструкцию обработки.

Обратите внимание, что необъявленная декларация XML в самом начале документа XML не является инструкцией обработки.

См. также QAbstractXmlNodeModel::kind().

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

QXmlNodeModelIndex::QXmlNodeModelIndex()

Конструктор по умолчанию. Создаёт элемент, который null.

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

QXmlNodeModelIndex::QXmlNodeModelIndex(const QXmlNodeModelIndex &other)

Стандартный конструктор копирования. Создаёт экземпляр QXmlNodeModelIndex, который является копией other.

qint64 QXmlNodeModelIndex::additionalData() const

Возвращает второе значение данных. Индекс узла хранит два значения данных. data() возвращает первое.

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

qint64 QXmlNodeModelIndex::data() const

Возвращает первое значение данных. Индекс узла хранит два значения данных. additionalData() возвращает второе.

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

void *QXmlNodeModelIndex::internalPointer() const

Возвращает первое значение данных как указатель void*.

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

bool QXmlNodeModelIndex::isNull() const

Возвращает true, если этот QXmlNodeModelIndex является значением по умолчанию, иначе false.

Null-QXmlNodeModelIndex не представляет никакого узла и не может использоваться совместно с QAbstractXmlNodeModel.

const QAbstractXmlNodeModel *QXmlNodeModelIndex::model() const

Возвращает QAbstractXmlNodeModel, к которому относится этот индекс узла. QXmlNodeModelIndex не владеет QAbstractXmlNodeModel и не отслеживает его жизненный цикл, поэтому этот указатель будет висячим, если QAbstractXmlNodeModel будет удалён раньше.

Нет метода установки модели узла, потому что экземпляры QXmlNodeModelIndex создаются только с помощью QAbstractXmlNodeModel::createIndex().

bool QXmlNodeModelIndex::operator!=(const QXmlNodeModelIndex &other) const

Возвращает true, если other является тем же узлом, что и этот.

bool QXmlNodeModelIndex::operator==(const QXmlNodeModelIndex &other) const

Возвращает true, если этот узел такой же, как other. Этот оператор не сравнивает значения, потомков или имена узлов. Он сравнивает идентификаторы узлов, т.е. являются ли два узла из одного документа и находятся ли они в одном и том же месте.

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

Spec-Zone.ru

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