Spec-Zone.ru › Qt 5.6

Класс QResource

Класс QResource предоставляет интерфейс для прямого чтения из ресурсов. Подробнее...

Заголовок: #include <QResource>
qmake: QT += core
С тех пор: Qt 4.2
  • Список всех членов, включая унаследованные
  • Устаревшие члены

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

Открытые функции

QResource(const QString &file = QString(), const QLocale &locale = QLocale())
~QResource()
QString absoluteFilePath() const
const uchar * data() const
QString fileName() const
bool isCompressed() const
bool isValid() const
QLocale locale() const
void setFileName(const QString &file)
void setLocale(const QLocale &locale)
qint64 size() const

Статические открытые члены

bool registerResource(const QString &rccFileName, const QString &mapRoot = QString())
bool registerResource(const uchar *rccData, const QString &mapRoot = QString())
bool unregisterResource(const QString &rccFileName, const QString &mapRoot = QString())
bool unregisterResource(const uchar *rccData, const QString &mapRoot = QString())

Защищенные функции

QStringList children() const
bool isDir() const
bool isFile() const

Подробное описание

Класс QResource предоставляет интерфейс для прямого чтения из ресурсов.

QResource — это объект, представляющий набор данных (и, возможно, дочерние элементы) по отношению к одному ресурсу. QResource обеспечивает прямой доступ к байтам в их исходном формате. Таким образом, прямой доступ позволяет читать данные без копирования буфера или косвенного обращения. Косвенное обращение часто полезно при взаимодействии с ресурсом, как будто он является файлом; это можно реализовать с помощью QFile. Данные и дочерние элементы за QResource обычно компилируются в приложение/библиотеку, но также возможно загрузить ресурс во время выполнения. При загрузке во время выполнения ресурсный файл будет загружен как один большой набор данных, а затем выдаваться частями с помощью ссылок в дереве ресурсов.

QResource может быть загружен с абсолютным путем, интерпретируемым как корень файловой системы с символом /, или в обозначении ресурса с корнем :. Также можно открыть относительный ресурс, который будет найден в списке путей, возвращаемых QDir::searchPaths().

QResource, представляющий файл, будет иметь данные, его поддерживающие. Эти данные могут быть сжатыми, в этом случае для доступа к реальным данным необходимо использовать qUncompress(); это происходит неявно при доступе через QFile. QResource, представляющий каталог, будет содержать только дочерние элементы и не будет иметь данных.

Динамическая загрузка ресурсов

Ресурс можно исключить из двоичного файла приложения и загрузить по мере необходимости во время выполнения, используя функцию registerResource(). Ресурсный файл, переданный в registerResource(), должен быть двоичным ресурсом, созданным с помощью rcc. Дополнительную информацию о двоичных ресурсах можно найти в документации Системы ресурсов Qt.

Это часто бывает полезно при загрузке большого набора значков приложения, которые могут изменяться в зависимости от настроек или которые могут редактироваться пользователем, а затем вновь создаваться. Ресурс немедленно загружается в память, либо в результате одной операции чтения файла, либо как файл с отображением памяти.

Этот подход может обеспечить значительный прирост производительности, поскольку будет загружен только один файл, и фрагменты данных будут выдаваться в соответствии с путем, запрошенным в setFileName().

Функция unregisterResource() удаляет ссылку на конкретный файл. Если существуют объекты QResource, которые в настоящее время ссылаются на ресурсы, связанные с незарегистрированным файлом, они останутся действительными, но сам ресурсный файл будет удален из корневых ресурсов, и поэтому больше нельзя создать QResource, указывающий на эти данные ресурса. Ресурс будет размапирован из памяти, когда будет уничтожен последний QResource, указывающий на него.

См. также Систему ресурсов Qt, QFile, QDir и QFileInfo.

Документация по функциям-членам

QResource::QResource(const QString &file = QString(), const QLocale &locale = QLocale())

Создает QResource, указывающий на file. locale используется для загрузки конкретной локализации данных ресурса.

См. также QFileInfo, QDir::searchPaths(), setFileName() и setLocale().

QResource::~QResource()

Освобождает ресурсы объекта QResource.

QString QResource::absoluteFilePath() const

Возвращает реальный путь, который представляет этот QResource, если ресурс был найден через QDir::searchPaths(), он будет указан в пути.

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

[protected] QStringList QResource::children() const

Возвращает список всех ресурсов в этом каталоге, если ресурс представляет собой файл, список будет пустым.

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

const uchar *QResource::data() const

Возвращает прямой доступ к только для чтения сегменту данных, который представляет этот ресурс. Если ресурс сжат, возвращаемые данные сжаты, и для доступа к данным необходимо использовать qUncompress(). Если ресурс — это каталог, возвращается 0.

См. также size(), isCompressed() и isFile().

QString QResource::fileName() const

Возвращает полный путь к файлу, который представляет этот QResource, как он был передан.

См. также setFileName() и absoluteFilePath().

bool QResource::isCompressed() const

Возвращает true если ресурс представляет собой файл, а поддерживающие его данные находятся в сжатом формате, в противном случае — false.

См. также data() и isFile().

[protected] bool QResource::isDir() const

Возвращает true если ресурс представляет собой каталог и, следовательно, может содержать children(), в противном случае — false, если он представляет собой файл.

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

[protected] bool QResource::isFile() const

Возвращает true если ресурс представляет собой файл и, следовательно, имеет данные, его поддерживающие, в противном случае — false, если он представляет собой каталог.

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

bool QResource::isValid() const

Возвращает true, если ресурс действительно существует в иерархии ресурсов, в противном случае возвращает false.

QLocale QResource::locale() const

Возвращает локаль, используемую для поиска данных для QResource.

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

[static] bool QResource::registerResource(const QString &rccFileName, const QString &mapRoot = QString())

Регистрирует ресурс с заданным rccFileName в указанном mapRoot месте дерева ресурсов и возвращает true, если файл успешно открыт; в противном случае возвращает false.

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

[static] bool QResource::registerResource(const uchar *rccData, const QString &mapRoot = QString())

Регистрирует ресурс с заданными rccData в указанном mapRoot месте дерева ресурсов и возвращает true, если файл успешно открыт; в противном случае возвращает false.

Предупреждение: Данные должны оставаться валидными на протяжении всего жизненного цикла любого QFile, который может ссылаться на данные ресурса.

Эта функция была добавлена в Qt 4.3.

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

void QResource::setFileName(const QString &file)

Устанавливает QResource, чтобы указывать на файл file. file может быть абсолютным, в этом случае он открывается напрямую, если относительным, то файл будет пытаться быть найден в QDir::searchPaths().

См. также fileName() и absoluteFilePath().

void QResource::setLocale(const QLocale &locale)

Устанавливает QResource, чтобы загружать только локали ресурса для locale. Если ресурс для конкретной локали не найден, используется локаль C.

См. также locale() и setFileName().

qint64 QResource::size() const

Возвращает размер данных, лежащих в основе ресурса.

См. также data() и isFile().

[static] bool QResource::unregisterResource(const QString &rccFileName, const QString &mapRoot = QString())

Удаляет регистрацию ресурса с заданным rccFileName в указанном mapRoot месте дерева ресурсов и возвращает true, если ресурс успешно загружен, и не существует ссылок на ресурс; в противном случае возвращает false.

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

[static] bool QResource::unregisterResource(const uchar *rccData, const QString &mapRoot = QString())

Удаляет регистрацию ресурса с заданными rccData в указанном mapRoot месте дерева ресурсов и возвращает true, если ресурс успешно загружен и не существует ссылок на ресурс; в противном случае возвращает false.

Эта функция была добавлена в Qt 4.3.

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

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qresource.html

Spec-Zone.ru

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