Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QQuickImageProvider Class Reference

The QQuickImageProvider class provides an interface for supporting pixmaps and threaded image requests in QML. More...

#include <qquickimageprovider.h>

+ Inheritance diagram for QQuickImageProvider:
+ Collaboration diagram for QQuickImageProvider:

Public Member Functions

 QQuickImageProvider (ImageType type, Flags flags=Flags())
 Creates an image provider that will provide images of the given type and behave according to the given flags.
 
 ~QQuickImageProvider () override
 Destroys the QQuickImageProvider.
 
ImageType imageType () const override
 Returns the image type supported by this provider.
 
Flags flags () const override
 Returns the flags set for this provider.
 
virtual QImage requestImage (const QString &id, QSize *size, const QSize &requestedSize)
 Implement this method to return the image with id.
 
virtual QPixmap requestPixmap (const QString &id, QSize *size, const QSize &requestedSize)
 Implement this method to return the pixmap with id.
 
virtual QQuickTextureFactoryrequestTexture (const QString &id, QSize *size, const QSize &requestedSize)
 Implement this method to return the texture with id.
 
- Public Member Functions inherited from QQmlImageProviderBase
virtual ~QQmlImageProviderBase ()
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Friends

class QQuickImageProviderWithOptions
 

Additional Inherited Members

- Public Types inherited from QQmlImageProviderBase
enum  ImageType : int {
  Invalid = 0 , Image , Pixmap , Texture ,
  ImageResponse
}
 Defines the type of image supported by this image provider. More...
 
enum  Flag { ForceAsynchronousImageLoading = 0x01 }
 Defines specific requirements or features of this image provider. More...
 
- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Detailed Description

The QQuickImageProvider class provides an interface for supporting pixmaps and threaded image requests in QML.

Since
5.0 \inmodule QtQuick

QQuickImageProvider is used to provide advanced image loading features in QML applications. It allows images in QML to be:

\list

  • Loaded using QPixmaps rather than actual image files
  • Loaded asynchronously in a separate thread \endlist

To specify that an image should be loaded by an image provider, use the {"image:"} scheme for the URL source of the image, followed by the identifiers of the image provider and the requested image. For example:

\qml Image { source: "image://myimageprovider/image.png" } \endqml

This specifies that the image should be loaded by the image provider named "myimageprovider", and the image to be loaded is named "image.png". The QML engine invokes the appropriate image provider according to the providers that have been registered through QQmlEngine::addImageProvider().

Note that the identifiers are case-insensitive, but the rest of the URL will be passed on with preserved case. For example, the below snippet would still specify that the image is loaded by the image provider named "myimageprovider", but it would request a different image than the above snippet ("Image.png" instead of "image.png"). \qml Image { source: "image://MyImageProvider/Image.png" } \endqml

If you want the rest of the URL to be case insensitive, you will have to take care of that yourself inside your image provider.

Definition at line 61 of file qquickimageprovider.h.

Constructor & Destructor Documentation

◆ QQuickImageProvider()

QQuickImageProvider::QQuickImageProvider ( ImageType type,
Flags flags = Flags() )

Creates an image provider that will provide images of the given type and behave according to the given flags.

Definition at line 309 of file qquickimageprovider.cpp.

References flags(), QQuickImageProviderPrivate::flags, QQuickImageProviderPrivate::isProviderWithOptions, and QQuickImageProviderPrivate::type.

+ Here is the call graph for this function:

◆ ~QQuickImageProvider()

QQuickImageProvider::~QQuickImageProvider ( )
override

Destroys the QQuickImageProvider.

Note
The destructor of your derived class need to be thread safe.

Definition at line 322 of file qquickimageprovider.cpp.

Member Function Documentation

◆ flags()

QQuickImageProvider::Flags QQuickImageProvider::flags ( ) const
overridevirtual

Returns the flags set for this provider.

Implements QQmlImageProviderBase.

Definition at line 338 of file qquickimageprovider.cpp.

References QQuickImageProviderPrivate::flags.

Referenced by QQuickImageProvider(), and QQuickImageProviderWithOptions::QQuickImageProviderWithOptions().

+ Here is the caller graph for this function:

◆ imageType()

QQuickImageProvider::ImageType QQuickImageProvider::imageType ( ) const
overridevirtual

Returns the image type supported by this provider.

Implements QQmlImageProviderBase.

Definition at line 330 of file qquickimageprovider.cpp.

References QQuickImageProviderPrivate::type.

Referenced by QQuickImageProviderWithOptions::requestImageResponse().

+ Here is the caller graph for this function:

◆ requestImage()

QImage QQuickImageProvider::requestImage ( const QString & id,
QSize * size,
const QSize & requestedSize )
virtual

Implement this method to return the image with id.

The default implementation returns an empty image.

The id is the requested image source, with the "image:" scheme and provider identifier removed. For example, if the image \l{Image::}{source} was "image://myprovider/icons/home", the given id would be "icons/home".

The requestedSize corresponds to the \l {Image::sourceSize} requested by an Image item. If requestedSize is a valid size, the image returned should be of that size.

In all cases, size must be set to the original size of the image. This is used to set the \l {Item::}{width} and \l {Item::}{height} of the relevant \l Image if these values have not been set explicitly.

Note
this method may be called by multiple threads, so ensure the implementation of this method is reentrant.

Reimplemented in QQuickImageProviderWithOptions, and QQuickImagePreviewProvider.

Definition at line 362 of file qquickimageprovider.cpp.

References Q_UNUSED, qWarning, and QQuickImageProviderPrivate::type.

Referenced by QQuickImageProviderWithOptions::requestImage().

+ Here is the caller graph for this function:

◆ requestPixmap()

QPixmap QQuickImageProvider::requestPixmap ( const QString & id,
QSize * size,
const QSize & requestedSize )
virtual

Implement this method to return the pixmap with id.

The default implementation returns an empty pixmap.

The id is the requested image source, with the "image:" scheme and provider identifier removed. For example, if the image \l{Image::}{source} was "image://myprovider/icons/home", the given id would be "icons/home".

The requestedSize corresponds to the \l {Image::sourceSize} requested by an Image item. If requestedSize is a valid size, the image returned should be of that size.

In all cases, size must be set to the original size of the image. This is used to set the \l {Item::}{width} and \l {Item::}{height} of the relevant \l Image if these values have not been set explicitly.

Note
this method may be called by multiple threads, so ensure the implementation of this method is reentrant.

Reimplemented in ColorImageProvider, and QQuickImageProviderWithOptions.

Definition at line 391 of file qquickimageprovider.cpp.

References Q_UNUSED, qWarning, and QQuickImageProviderPrivate::type.

Referenced by QQuickImageProviderWithOptions::requestPixmap().

+ Here is the caller graph for this function:

◆ requestTexture()

QQuickTextureFactory * QQuickImageProvider::requestTexture ( const QString & id,
QSize * size,
const QSize & requestedSize )
virtual

Implement this method to return the texture with id.

The default implementation returns \nullptr.

The id is the requested image source, with the "image:" scheme and provider identifier removed. For example, if the image \l{Image::}{source} was "image://myprovider/icons/home", the given id would be "icons/home".

The requestedSize corresponds to the \l {Image::sourceSize} requested by an Image item. If requestedSize is a valid size, the image returned should be of that size.

In all cases, size must be set to the original size of the image. This is used to set the \l {Item::}{width} and \l {Item::}{height} of the relevant \l Image if these values have not been set explicitly.

Note
this method may be called by multiple threads, so ensure the implementation of this method is reentrant.

Reimplemented in QQuickImageProviderWithOptions.

Definition at line 422 of file qquickimageprovider.cpp.

References Q_UNUSED, qWarning, QQmlImageProviderBase::Texture, and QQuickImageProviderPrivate::type.

Referenced by QQuickImageProviderWithOptions::requestTexture().

+ Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ QQuickImageProviderWithOptions

friend class QQuickImageProviderWithOptions
friend

Definition at line 63 of file qquickimageprovider.h.


The documentation for this class was generated from the following files: