QDeclarativeEngine Class Reference

[QtDeclarative module]

该QDeclarativeEngine类提供了实例QML组件的环境。More…

继承QObject

Types

  • enum ObjectOwnership { CppOwnership, JavaScriptOwnership }

Methods

  • __init__ (self, QObject parent = None)
  • addImageProvider (self, QString id, QDeclarativeImageProvider)
  • addImportPath (self, QString dir)
  • addPluginPath (self, QString dir)
  • QUrl baseUrl (self)
  • clearComponentCache (self)
  • QDeclarativeImageProvider imageProvider (self, QString id)
  • QStringList importPathList (self)
  • (bool, QString errorString) importPlugin (self, QString filePath, QString uri)
  • QNetworkAccessManager networkAccessManager (self)
  • QDeclarativeNetworkAccessManagerFactory networkAccessManagerFactory (self)
  • QString offlineStoragePath (self)
  • bool outputWarningsToStandardError (self)
  • QStringList pluginPathList (self)
  • removeImageProvider (self, QString id)
  • QDeclarativeContext rootContext (self)
  • setBaseUrl (self, QUrl)
  • setImportPathList (self, QStringList paths)
  • setNetworkAccessManagerFactory (self, QDeclarativeNetworkAccessManagerFactory)
  • setOfflineStoragePath (self, QString dir)
  • setOutputWarningsToStandardError (self, bool)
  • setPluginPathList (self, QStringList paths)

Static Methods

  • QDeclarativeContext contextForObject (QObject)
  • ObjectOwnership objectOwnership (QObject)
  • setContextForObject (QObject, QDeclarativeContext)
  • setObjectOwnership (QObject, ObjectOwnership)

Qt Signals

  • void quit ()
  • void warnings (const QList<QDeclarativeError>&)

Detailed Description

该QDeclarativeEngine类提供了实例QML组件的环境。

每个QML组件实例化的QDeclarativeContextQDeclarativeContext的是将数据传递到QML组件是必不可少的。在QML中,上下文是分级排列并且这个层次是由QDeclarativeEngine管理。

在此之前创建的任何QML组件,应用程序必须创建一个QDeclarativeEngine来访问一个QML上下文。下面的示例显示了如何创建一个简单的文本项。

  1. QDeclarativeEngine engine;
  2. [QDeclarativeComponent]($docs-qdeclarativecomponent.html) component(&engine);
  3. component.setData("import QtQuick 1.0\nText { text: \"Hello world!\" }", [QUrl]($docs-qurl.html)());
  4. [QDeclarativeItem](qdeclarativeitem.html) *item = qobject_cast<[QDeclarativeItem](qdeclarativeitem.html) *>(component.create());
  5. //add item to view, etc
  6. ...

在这种情况下,文本项目将在发动机的创建root context


Type Documentation

  1. QDeclarativeEngine.ObjectOwnership

所有权控制QML是否自动销毁QObject当对象被垃圾由JavaScript引擎收集。这两种所有制的选项有:

Constant Value Description
QDeclarativeEngine.CppOwnership 0 对象是由C + +代码拥有,永远不会被QML被删除。 JavaScript的destroy()方法不能与CppOwnership对象使用。此选项类似于QScriptEngine.QtOwnership
QDeclarativeEngine.JavaScriptOwnership 1 该目的是通过JavaScript的拥有。当对象被返回到QML作为一个方法调用或属性访问的返回值, QML会删除该对象,如果有它没有剩馀的JavaScript引用和它有没有QObject.parent( ) 。此选项类似于QScriptEngine.ScriptOwnership

一般的应用程序并不需要显式设置对象的所有权。 QML使用启发式设置默认对象所有权。默认情况下,是通过QML创建一个对象有JavaScriptOwnership 。唯一的例外是通过调用QDeclarativeCompnent.create (创建的根对象)或QDeclarativeComponent.beginCreate(),它在默认情况下已经CppOwnership 。这些根级对象的所有权被视为已转移到C + +调用者。

通过QML不能创建对象具有CppOwnership默认。唯一的例外是一个C + +方法调用返回的对象。这些对象的所有权被传递给JavaScript 。

调用setObjectOwnership( )复盖使用QML默认所有权启发式。


Method Documentation

  1. QDeclarativeEngine.__init__ (self, QObject parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

创建一个新的QDeclarativeEngine用给定的parent

  1. QDeclarativeEngine.addImageProvider (self, QString id, QDeclarativeImageProvider)

设置provider用于经由所请求的图像image: URL方案,与主机providerId。该QDeclarativeEngine采取所有权provider

图片提供者能为像素图和螺纹图像请求支持。请参阅QDeclarativeImageProvider文件中有关实施和使用图像提供商的详细信息。

所有所需的图像提供商应该被添加到发动机的任何QML源之前文件被加载。

See also removeImageProvider( ) 。

  1. QDeclarativeEngine.addImportPath (self, QString dir)

添加path因为那里的搜索引擎在一个基于URL的目录结构安装的模块目录。该path可以是本地文件系统的目录或URL。

新添加的path将首先在importPathList( ) 。

See also setImportPathList()和QML Modules

  1. QDeclarativeEngine.addPluginPath (self, QString dir)

添加path因为此时发动机搜索的导入模块本地插件(在引用的目录qmldir文件) 。

默认情况下,列表中只包含.即在该目录中的引擎的搜索qmldir文件本身。

新添加的path将首先在pluginPathList( ) 。

See also setPluginPathList( ) 。

  1. QUrl QDeclarativeEngine.baseUrl (self)

返回的基础URL为这个引擎。基本URL仅用于解决组件时的相对URL被传递给QDeclarativeComponent构造函数。

如果基URL尚未显式设置,则此方法返回应用程序的当前工作目录。

See also setBaseUrl( ) 。

  1. QDeclarativeEngine.clearComponentCache (self)

清除发动机的内部部件缓存。

通常情况下,QDeclarativeEngine缓存从QML文件中加载的组件。这种方法清除该缓存,并强制组件重新加载。

  1. QDeclarativeContext QDeclarativeEngine.contextForObject (QObject)

返回QDeclarativeContextobject,或者0,如果没有上下文已定。

QDeclarativeEngine实例化一个QObject时,上下文被自动设置。

See also setContextForObject( ) 。

  1. QDeclarativeImageProvider QDeclarativeEngine.imageProvider (self, QString id)

返回QDeclarativeImageProvider对于设置providerId

  1. QStringList QDeclarativeEngine.importPathList (self)

返回将搜索引擎在一个基于URL的目录结构安装的模块的目录列表。

例如,如果/opt/MyApp/lib/imports在路径中,然后QML的进口com.mycompany.Feature会导致QDeclarativeEngine看在/opt/MyApp/lib/imports/com/mycompany/Feature/对于由该模块提供的组件。一qmldir文件是必需的,用于定义类型映射版本,并可能宣告扩展插件。

默认情况下,该列表包含应用程序的可执行文件的目录,在指定路径QML_IMPORT_PATH环境变量,以及内置的ImportsPathQLibraryInfo

See also addImportPath()和setImportPathList( ) 。

  1. (bool, QString errorString) QDeclarativeEngine.importPlugin (self, QString filePath, QString uri)

进口评为插件filePathuri提供。返回True如果插件被成功导入,否则返回False 。

如果失败,如果非空, *errorString将被设置为描述失败的消息。

该插件必须是Qt的插件,它实现了QDeclarativeExtensionPlugin接口。

  1. QNetworkAccessManager QDeclarativeEngine.networkAccessManager (self)

返回一个共同的QNetworkAccessManager它可以用来由本机实例化的任何QML元素。

如果QDeclarativeNetworkAccessManagerFactory已被设置和一QNetworkAccessManager尚未建立,则QDeclarativeNetworkAccessManagerFactory将被用来创建QNetworkAccessManager否则返回QNetworkAccessManager不会有任何代理或缓存设置。

See also setNetworkAccessManagerFactory( ) 。

  1. QDeclarativeNetworkAccessManagerFactory QDeclarativeEngine.networkAccessManagerFactory (self)

返回当前QDeclarativeNetworkAccessManagerFactory

See also setNetworkAccessManagerFactory( ) 。

  1. ObjectOwnership QDeclarativeEngine.objectOwnership (QObject)

[

返回的所有权object

]($docs-qdeclarativeengine.html#ObjectOwnership-enum)

See also setObjectOwnership( ) 。

  1. QString QDeclarativeEngine.offlineStoragePath (self)
  1. bool QDeclarativeEngine.outputWarningsToStandardError (self)

返回True如果警告信息将被输出到stderr除了由正在发射warnings( )信号,否则为False 。

默认值是True 。

See also setOutputWarningsToStandardError( ) 。

  1. QStringList QDeclarativeEngine.pluginPathList (self)

返回目录所在的搜索引擎为进口原生模块插件(在引用的列表qmldir文件) 。

默认情况下,列表中只包含.即在该目录中的引擎的搜索qmldir文件本身。

See also addPluginPath()和setPluginPathList( ) 。

  1. QDeclarativeEngine.removeImageProvider (self, QString id)

移除QDeclarativeImageProviderproviderId

返回,如果它被发现的提供者,否则返回0 。

See also addImageProvider( ) 。

  1. QDeclarativeContext QDeclarativeEngine.rootContext (self)

[

返回引擎的根上下文。

]($docs-qdeclarativecontext.html)

根上下文是由自动创建QDeclarativeEngine。数据应提供给由发动机实例化所有的QML组件实例应该放在根上下文。

额外的数据应该只提供给组件实例的一个子集应该被添加到子上下文父到根上下文。

  1. QDeclarativeEngine.setBaseUrl (self, QUrl)

设置这台发动机的基础URLurl

See also baseUrl( ) 。

  1. QDeclarativeEngine.setContextForObject (QObject, QDeclarativeContext)

设置QDeclarativeContextobjectcontext。如果object已经有一个上下文,则输出警告,但上下文不被改变。

QDeclarativeEngine实例化一个QObject时,上下文被自动设置。

See also contextForObject( ) 。

  1. QDeclarativeEngine.setImportPathList (self, QStringList paths)

Sets paths因为那里的搜索引擎在一个基于URL的目录结构安装的模块的目录列表。

默认情况下,该列表包含应用程序的可执行文件的目录,在指定路径QML_IMPORT_PATH环境变量,以及内置的ImportsPathQLibraryInfo

See also importPathList()和addImportPath( ) 。

  1. QDeclarativeEngine.setNetworkAccessManagerFactory (self, QDeclarativeNetworkAccessManagerFactory)

设置factory用于创建QNetworkAccessManager(S ) 。

QNetworkAccessManager用于通过QML所有网络访问。通过实现工厂能够创建自定义QNetworkAccessManager有专门的缓存,代理和cookie支持。

工厂必须执行引擎之前进行设置。

See also networkAccessManagerFactory( ) 。

  1. QDeclarativeEngine.setObjectOwnership (QObject, ObjectOwnership)

设置ownershipobject

See also objectOwnership( ) 。

  1. QDeclarativeEngine.setOfflineStoragePath (self, QString dir)
  1. QDeclarativeEngine.setOutputWarningsToStandardError (self, bool)

设置是否警告信息将被输出到stderr到enabled

If enabled诚然,通过QML产生的任何警告信息将被输出到标准错误,并发射warnings()信号。如果enabled是假的,对warnings()信号将被发射。这允许应用程序来处理报警输出自己。

默认值是True 。

See also outputWarningsToStandardError( ) 。

  1. QDeclarativeEngine.setPluginPathList (self, QStringList paths)

设置目录所在的引擎搜索的导入模块本地插件(在引用的列表qmldir文件)paths

默认情况下,列表中只包含.即在该目录中的引擎的搜索qmldir文件本身。

See also pluginPathList()和addPluginPath( ) 。


Qt Signal Documentation

  1. void quit ()

这是该信号的默认超载。

这个信号被发射时,由发动机加载的QML想退出。

  1. void warnings (const QList<QDeclarativeError>&)

这是该信号的默认超载。

这个信号被发射时warnings通过QML生成的消息。