Класс QXmlNodeModelIndex
Класс QXmlNodeModelIndex идентифицирует узел в модели узлов XML, являющейся подклассом QAbstractXmlNodeModel. Подробнее...
| Заголовок: | #include <QXmlNodeModelIndex> |
| qmake: | QT += xmlpatterns |
| С момента: | Qt 4.4 |
Примечание: Все функции в этом классе являются перевходными.
Типы общедоступного использования
| Перечисление | DocumentOrder { Предыдущий, Следующий, Является } |
| Тип | Список |
| Перечисление | ТипУзла { Атрибут, Текст, Комментарий, Документ, ..., ИнструкцияОбработки } |
Общедоступные функции
| QXmlNodeModelIndex() | |
| QXmlNodeModelIndex(const QXmlNodeModelIndex &other) | |
| qint64 | дополнительныеДанные() const |
| qint64 | данные() const |
| void * | внутреннийУказатель() const |
| bool | являетсяПустым() const |
| const QAbstractXmlNodeModel * | модель() 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::Список
Тип-синоним для QList<QXmlNodeModelIndex>.
Перечисление QXmlNodeModelIndex::ТипУзла
Идентифицирует тип узла.
| Константа | Значение | Описание |
|---|---|---|
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.
См. также являетсяПустым().
QXmlNodeModelIndex::QXmlNodeModelIndex(const QXmlNodeModelIndex &other)
Стандартный конструктор копирования. Создает экземпляр QXmlNodeModelIndex, который является копией other.
qint64 QXmlNodeModelIndex::дополнительныеДанные() const
Возвращает второе значение данных. Индекс узла содержит два значения данных. data() возвращает первое.
См. также данные().
qint64 QXmlNodeModelIndex::данные() const
Возвращает первое значение данных. Индекс узла содержит два значения данных. additionalData() возвращает второе.
См. также дополнительныеДанные().
void *QXmlNodeModelIndex::внутреннийУказатель() const
Возвращает первое значение данных в виде указателя void*.
См. также дополнительныеДанные().
bool QXmlNodeModelIndex::являетсяПустым() 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.9/qxmlnodemodelindex.html