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