Spec-Zone.ru › Qt 5.11

Класс 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
QDateTime lastModified() 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().

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, если ресурс представляет собой файл, а данные, поддерживающие его, находятся в сжатом формате, в противном случае — ложь.

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

bool QResource::isDir() const

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

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

bool QResource::isFile() const

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

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

bool QResource::isValid() const

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

QDateTime QResource::lastModified() const

Возвращает дату и время последнего изменения файла до его упаковки в ресурс.

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.11/qresource.html

Spec-Zone.ru

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