QQmlEngine¶
The QQmlEngine
class provides an environment for instantiating QML components. More…
Inherited by: QQmlApplicationEngine
Synopsis¶
Functions¶
def
addImageProvider
(id, arg__2)def
addImportPath
(dir)def
addNamedBundle
(arg__1, arg__2)def
addPluginPath
(dir)def
addUrlInterceptor
(urlInterceptor)def
baseUrl
()def
captureProperty
(object, property)def
clearComponentCache
()def
imageProvider
(id)def
importPathList
()def
importPlugin
(filePath, uri, errors)def
incubationController
()def
interceptUrl
(url, type)def
networkAccessManager
()def
networkAccessManagerFactory
()def
offlineStorageDatabaseFilePath
(databaseName)def
offlineStoragePath
()def
pluginPathList
()def
removeImageProvider
(id)def
removeUrlInterceptor
(urlInterceptor)def
rootContext
()def
setBaseUrl
(arg__1)def
setImportPathList
(paths)def
setIncubationController
(arg__1)def
setNetworkAccessManagerFactory
(arg__1)def
setOfflineStoragePath
(dir)def
setOutputWarningsToStandardError
(arg__1)def
setPluginPathList
(paths)def
setUrlInterceptor
(urlInterceptor)def
trimComponentCache
()def
urlInterceptor
()def
urlInterceptors
()
Slots¶
def
retranslate
()
Signals¶
Static functions¶
def
contextForObject
(arg__1)def
setContextForObject
(arg__1, arg__2)
Detailed Description¶
Each QML component is instantiated in a QQmlContext
. QQmlContext
‘s are essential for passing data to QML components. In QML, contexts are arranged hierarchically and this hierarchy is managed by the QQmlEngine
.
Prior to creating any QML components, an application must have created a QQmlEngine
to gain access to a QML context. The following example shows how to create a simple Text item.
QQmlEngine engine; QQmlComponent component(&engine); component.setData("import QtQuick 2.0\nText { text: \"Hello world!\" }", QUrl()); QQuickItem *item = qobject_cast<QQuickItem *>(component.create()); //add item to view, etc ...
In this case, the Text item will be created in the engine’s root context
.
See also
- class PySide6.QtQml.QQmlEngine([p=None])¶
- Parameters
Create a new QQmlEngine
with the given parent
.
- PySide6.QtQml.QQmlEngine.addImageProvider(id, arg__2)¶
- Parameters
id – str
arg__2 –
PySide6.QtQml.QQmlImageProviderBase
Sets the provider
to use for images requested via the image: url scheme, with host providerId
. The QQmlEngine
takes ownership of provider
.
Image providers enable support for pixmap and threaded image requests. See the QQuickImageProvider
documentation for details on implementing and using image providers.
All required image providers should be added to the engine before any QML sources files are loaded.
See also
removeImageProvider()
QQuickImageProvider
QQmlImageProviderBase
- PySide6.QtQml.QQmlEngine.addImportPath(dir)¶
- Parameters
dir – str
Adds path
as a directory where the engine searches for installed modules in a URL-based directory structure.
The path
may be a local filesystem directory, a Qt Resource path (:/imports
), a Qt Resource url (qrc:/imports
) or a URL.
The path
will be converted into canonical form before it is added to the import path list.
The newly added path
will be first in the importPathList()
.
See also
setImportPathList()
QML Modules
- PySide6.QtQml.QQmlEngine.addNamedBundle(arg__1, arg__2)¶
- Parameters
arg__1 – str
arg__2 – str
- Return type
bool
Note
This function is deprecated.
- PySide6.QtQml.QQmlEngine.addPluginPath(dir)¶
- Parameters
dir – str
Adds path
as a directory where the engine searches for native plugins for imported modules (referenced in the qmldir
file).
By default, the list contains only .
, i.e. the engine searches in the directory of the qmldir
file itself.
The newly added path
will be first in the pluginPathList()
.
See also
- PySide6.QtQml.QQmlEngine.addUrlInterceptor(urlInterceptor)¶
- Parameters
urlInterceptor –
PySide6.QtQml.QQmlAbstractUrlInterceptor
Adds a urlInterceptor
to be used when resolving URLs in QML. This also applies to URLs used for loading script files and QML types. The URL interceptors should not be modifed while the engine is loading files, or URL selection may be inconsistent. Multiple URL interceptors, when given, will be called in the order they were added for each URL.
QQmlEngine
does not take ownership of the interceptor and won’t delete it.
- PySide6.QtQml.QQmlEngine.baseUrl()¶
- Return type
Return the base URL for this engine. The base URL is only used to resolve components when a relative URL is passed to the QQmlComponent
constructor.
If a base URL has not been explicitly set, this method returns the application’s current working directory.
See also
- PySide6.QtQml.QQmlEngine.captureProperty(object, property)¶
- Parameters
object –
PySide6.QtCore.QObject
property –
PySide6.QtCore.QMetaProperty
- PySide6.QtQml.QQmlEngine.clearComponentCache()¶
Clears the engine’s internal component cache.
This function causes the property metadata of all components previously loaded by the engine to be destroyed. All previously loaded components and the property bindings for all extant objects created from those components will cease to function.
This function returns the engine to a state where it does not contain any loaded component data. This may be useful in order to reload a smaller subset of the previous component set, or to load a new version of a previously loaded component.
Once the component cache has been cleared, components must be loaded before any new objects can be created.
Note
Any existing objects created from QML components retain their types, even if you clear the component cache. This includes singleton objects. If you create more objects from the same QML code after clearing the cache, the new objects will be of different types than the old ones. Assigning such a new object to a property of its declared type belonging to an object created before clearing the cache won’t work.
As a general rule of thumb, make sure that no objects created from QML components are alive when you clear the component cache.
See also
- static PySide6.QtQml.QQmlEngine.contextForObject(arg__1)¶
- Parameters
arg__1 –
PySide6.QtCore.QObject
- Return type
Returns the QQmlContext
for the object
, or 0 if no context has been set.
When the QQmlEngine
instantiates a QObject
, the context is set automatically.
See also
setContextForObject()
qmlContext()
qmlEngine()
- PySide6.QtQml.QQmlEngine.exit(retCode)¶
- Parameters
retCode – int
- PySide6.QtQml.QQmlEngine.imageProvider(id)¶
- Parameters
id – str
- Return type
Returns the image provider set for providerId
if found; otherwise returns None
.
See also
QQuickImageProvider
- PySide6.QtQml.QQmlEngine.importPathList()¶
- Return type
list of strings
Returns the list of directories where the engine searches for installed modules in a URL-based directory structure.
For example, if /opt/MyApp/lib/imports
is in the path, then QML that imports com.mycompany.Feature
will cause the QQmlEngine
to look in /opt/MyApp/lib/imports/com/mycompany/Feature/
for the components provided by that module. A qmldir
file is required for defining the type version mapping and possibly QML extensions plugins.
By default, the list contains the directory of the application executable, paths specified in the QML_IMPORT_PATH
environment variable, and the builtin QmlImportsPath
from QLibraryInfo
.
See also
- PySide6.QtQml.QQmlEngine.importPlugin(filePath, uri, errors)¶
- Parameters
filePath – str
uri – str
errors –
QList
- Return type
bool
Imports the plugin named filePath
with the uri
provided. Returns true if the plugin was successfully imported; otherwise returns false.
On failure and if non-null, the errors
list will have any errors which occurred prepended to it.
The plugin has to be a Qt plugin which implements the QQmlEngineExtensionPlugin
interface.
- PySide6.QtQml.QQmlEngine.incubationController()¶
- Return type
Returns the currently set incubation controller, or 0 if no controller has been set.
See also
- PySide6.QtQml.QQmlEngine.interceptUrl(url, type)¶
- Parameters
url –
PySide6.QtCore.QUrl
type –
DataType
- Return type
Run the current URL interceptors on the given url
of the given type
and return the result.
- PySide6.QtQml.QQmlEngine.networkAccessManager()¶
- Return type
Returns a common QNetworkAccessManager
which can be used by any QML type instantiated by this engine.
If a QQmlNetworkAccessManagerFactory
has been set and a QNetworkAccessManager
has not yet been created, the QQmlNetworkAccessManagerFactory
will be used to create the QNetworkAccessManager
; otherwise the returned QNetworkAccessManager
will have no proxy or cache set.
See also
- PySide6.QtQml.QQmlEngine.networkAccessManagerFactory()¶
- Return type
Returns the current QQmlNetworkAccessManagerFactory
.
See also
- PySide6.QtQml.QQmlEngine.offlineStorageDatabaseFilePath(databaseName)¶
- Parameters
databaseName – str
- Return type
str
Returns the file path where a Local Storage database with the identifier databaseName
is (or would be) located.
See also
- PySide6.QtQml.QQmlEngine.offlineStoragePath()¶
- Return type
str
This property holds the directory for storing offline user data.
Returns the directory where SQL and other offline storage is placed.
The SQL databases created with openDatabase() are stored here.
The default is QML/OfflineStorage in the platform-standard user application data directory.
Note that the path may not currently exist on the filesystem, so callers wanting to create new files at this location should create it first - see mkpath()
.
- PySide6.QtQml.QQmlEngine.outputWarningsToStandardError()¶
- Return type
bool
Returns true if warning messages will be output to stderr in addition to being emitted by the warnings()
signal, otherwise false.
The default value is true.
See also
- PySide6.QtQml.QQmlEngine.pluginPathList()¶
- Return type
list of strings
Returns the list of directories where the engine searches for native plugins for imported modules (referenced in the qmldir
file).
By default, the list contains only .
, i.e. the engine searches in the directory of the qmldir
file itself.
See also
- PySide6.QtQml.QQmlEngine.quit()¶
- PySide6.QtQml.QQmlEngine.removeImageProvider(id)¶
- Parameters
id – str
Removes the image provider for providerId
.
See also
addImageProvider()
QQuickImageProvider
- PySide6.QtQml.QQmlEngine.removeUrlInterceptor(urlInterceptor)¶
- Parameters
urlInterceptor –
PySide6.QtQml.QQmlAbstractUrlInterceptor
Remove a urlInterceptor
that was previously added using addUrlInterceptor
. The URL interceptors should not be modifed while the engine is loading files, or URL selection may be inconsistent.
This does not delete the interceptor, but merely removes it from the engine. You can re-use it on the same or a different engine afterwards.
- PySide6.QtQml.QQmlEngine.retranslate()¶
Refreshes all binding expressions that use strings marked for translation.
Call this function after you have installed a new translator with installTranslator
, to ensure that your user-interface shows up-to-date translations.
- PySide6.QtQml.QQmlEngine.rootContext()¶
- Return type
Returns the engine’s root context.
The root context is automatically created by the QQmlEngine
. Data that should be available to all QML component instances instantiated by the engine should be put in the root context.
Additional data that should only be available to a subset of component instances should be added to sub-contexts parented to the root context.
- PySide6.QtQml.QQmlEngine.setBaseUrl(arg__1)¶
- Parameters
arg__1 –
PySide6.QtCore.QUrl
Set the base URL for this engine to url
.
See also
- static PySide6.QtQml.QQmlEngine.setContextForObject(arg__1, arg__2)¶
- Parameters
arg__1 –
PySide6.QtCore.QObject
arg__2 –
PySide6.QtQml.QQmlContext
Sets the QQmlContext
for the object
to context
. If the object
already has a context, a warning is output, but the context is not changed.
When the QQmlEngine
instantiates a QObject
, the context is set automatically.
See also
- PySide6.QtQml.QQmlEngine.setImportPathList(paths)¶
- Parameters
paths – list of strings
Sets paths
as the list of directories where the engine searches for installed modules in a URL-based directory structure.
By default, the list contains the directory of the application executable, paths specified in the QML_IMPORT_PATH
environment variable, and the builtin QmlImportsPath
from QLibraryInfo
.
See also
- PySide6.QtQml.QQmlEngine.setIncubationController(arg__1)¶
- Parameters
Sets the engine’s incubation controller
. The engine can only have one active controller and it does not take ownership of it.
See also
- PySide6.QtQml.QQmlEngine.setNetworkAccessManagerFactory(arg__1)¶
- Parameters
Sets the factory
to use for creating QNetworkAccessManager
(s).
QNetworkAccessManager
is used for all network access by QML. By implementing a factory it is possible to create custom QNetworkAccessManager
with specialized caching, proxy and cookie support.
The factory must be set before executing the engine.
- PySide6.QtQml.QQmlEngine.setOfflineStoragePath(dir)¶
- Parameters
dir – str
This property holds the directory for storing offline user data.
Returns the directory where SQL and other offline storage is placed.
The SQL databases created with openDatabase() are stored here.
The default is QML/OfflineStorage in the platform-standard user application data directory.
Note that the path may not currently exist on the filesystem, so callers wanting to create new files at this location should create it first - see mkpath()
.
- PySide6.QtQml.QQmlEngine.setOutputWarningsToStandardError(arg__1)¶
- Parameters
arg__1 – bool
Set whether warning messages will be output to stderr to enabled
.
If enabled
is true, any warning messages generated by QML will be output to stderr and emitted by the warnings()
signal. If enabled
is false, only the warnings()
signal will be emitted. This allows applications to handle warning output themselves.
The default value is true.
See also
- PySide6.QtQml.QQmlEngine.setPluginPathList(paths)¶
- Parameters
paths – list of strings
Sets the list of directories where the engine searches for native plugins for imported modules (referenced in the qmldir
file) to paths
.
By default, the list contains only .
, i.e. the engine searches in the directory of the qmldir
file itself.
See also
- PySide6.QtQml.QQmlEngine.setUrlInterceptor(urlInterceptor)¶
- Parameters
urlInterceptor –
PySide6.QtQml.QQmlAbstractUrlInterceptor
Note
This function is deprecated.
- PySide6.QtQml.QQmlEngine.trimComponentCache()¶
Trims the engine’s internal component cache.
This function causes the property metadata of any loaded components which are not currently in use to be destroyed.
A component is considered to be in use if there are any extant instances of the component itself, any instances of other components that use the component, or any objects instantiated by any of those components.
See also
- PySide6.QtQml.QQmlEngine.urlInterceptor()¶
- Return type
Note
This function is deprecated.
This API is private for 5.1
Returns the last QQmlAbstractUrlInterceptor
. It must not be modified outside the GUI thread.
- PySide6.QtQml.QQmlEngine.urlInterceptors()¶
- Return type
Returns the list of currently active URL interceptors.
- PySide6.QtQml.QQmlEngine.warnings(warnings)¶
- Parameters
warnings –
© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.