Класс QXmlNodeModelIndex
Класс QXmlNodeModelIndex идентифицирует узел в модели узлов XML, унаследованной от QAbstractXmlNodeModel. Подробнее...
| Заголовок: | #include <QXmlNodeModelIndex> |
| qmake: | QT += xmlpatterns |
| С момента: | Qt 4.4 |
Примечание: Все функции в этом классе являются повторно входящими.
Типы публичных данных
| перечисление | DocumentOrder { Precedes, Follows, Is } |
| typedef | 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. Проверяет, имеют ли два узла одинаковую идентичность узла. |
typedef 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/archives/qt-5.6/qxmlnodemodelindex.html