Spec-Zone.ru › Qt 5.14

Класс QXmlNodeModelIndex

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

Заголовок: #include <QXmlNodeModelIndex>
qmake: QT += xmlpatterns
С момента: Qt 4.4

Этот класс был представлен в Qt 4.4.

  • Список всех членов, включая унаследованные

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

Публичные типы

перечисление DocumentOrder { Precedes, Follows, Is }
тип-синоним List
перечисление NodeKind { Attribute, Text, Comment, Document, Element, …, ProcessingInstruction }

Публичные функции

QXmlNodeModelIndex(const QXmlNodeModelIndex &other)
QXmlNodeModelIndex()
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. Он содержит:

  • Указатель на модель узлов 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(const QXmlNodeModelIndex &other)

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

QXmlNodeModelIndex::QXmlNodeModelIndex()

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

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

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.

Нулевой 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.14/qxmlnodemodelindex.html

Spec-Zone.ru

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