Описание класса QXmlNodeModelIndex [модуль QtXmlPatterns]
Класс QXmlNodeModelIndex определяет узел в модели XML узлов, наследнике QAbstractXmlNodeModel. Далее...
#include <QXmlNodeModelIndex> Замечание: все функции этого класса реентерабильны.
Этот класс был введён в Qt 4.4.
Открытые типы
- enum DocumentOrder { Precedes, Follows, Is }
- typedef List
- enum NodeKind { Attribute, Text, Comment, Document, ..., ProcessingInstruction }
Открытые функции
Подробное описание
Класс QXmlNodeModelIndex определяет узел в модели XML узлов, наследнике QAbstractXmlNodeModel.
QXmlNodeModelIndex является индексом в модели XML узлов. Он содержит:
Потому как 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.
Описание типов-членов
enum QXmlNodeModelIndex::DocumentOrder
Определяет специфичные для узлов сравнения, которые следует использовать.
Константа | Значение | Описание |
QXmlNodeModelIndex::Precedes | -1 | Означает операцию \<\<. Проверяет, что первый операнд стоит перед вторым в документе. |
QXmlNodeModelIndex::Follows | 1 | Означает операцию \>\>. Проверяет, что первый операнд следует за вторым в документе. |
QXmlNodeModelIndex::Is | 0 | Означает операцию is. Проверяет, что оба узла идентичны. |
typedef QXmlNodeModelIndex::List
Typedef для QList<QXmlNodeModelIndex>.
enum 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.
Нулевой 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. Эта операция не сравнивает значения, детей или имена узлов. Сравниваются идентификаторы узлов, т.е. выявляется то, что они из одного документа и находятся в одном месте.
Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies) |
Торговые марки |
Qt 4.5.3 |
|