Qt Quick View Android 类
QtQuickView 类让您轻松将 QML 内容作为 View 添加到您的 Android 应用中。
类 | QtQuickView |
包名 | org.qtproject.qt.android |
扩展 | org.qtproject.qt.android.QtView – org.qtproject.qt.android.QtLayout –– android.view ViewGroup |
详细信息
QtQuickView 类让您轻松将 QML 内容作为 View 添加到您的 Android 应用中。《QtQuickView》实例化一个带有特定 QML 组件源(本地或网络文件)的《QQuickView》并将其嵌入到自身中。您可以像对任何其他View一样将其添加到 Android 应用的布局中。《QtQuickView》是您想要向非 Qt Android 应用扩展 QML 内容但不想使整个应用都使用 Qt 框架时的良好选择。它将 Qt Quick 的功能带入 Android 应用中,使得在 Android 应用中使用各种 Qt Quick API 成为可能。
类的典型使用
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ... QtQuickView qmlView = new QtQuickView(this, "qrc:/qt/qml/target/main.qml", "target"); qmlView.setStatusChangeListener(status -> { Log.i(TAG, "QML loading status changed to " + status); }); // Add QML to your layout layout.addView(qmlView, params); ... }
更详细的示例,请参阅Android Studio 项目中的 QML。
构造函数
public QtQuickView(Context parent, String qmlUri, String appName)
创建一个 QtQuickView 来加载和渲染一个 QML 组件。实例化《QtQuickView》将加载 Qt 库,包括由《appName》指定的应用库。然后,它创建一个加载指定《qmlUri》的 QML 源的《QQuickView》。
参数
- context:父 Context。
- qmlUri:主 QML 文件的 URI。
- appName:要加载并启动的 Qt 应用库的名称。这对应于 Qt 应用设置中的 target 名称。
异常
如果参数无效,则抛出《InvalidParameterException》。
public QtQuickView(Context context, String qmlUri, String appName, String[] qmlImportPaths)
创建一个 QtQuickView 来加载和查看一个 QML 组件。实例化《QtQuickView》将加载 Qt 库,包括由《appName》指定的应用库。然后,它创建一个加载指定《qmlUri》的 QML 源的《QQuickView》。这个重载接受一个字符串数组《qmlImportPaths》,在 QML 应用应该从自定义路径加载 QML 模块的情况下。
参数
- context:父 Context。
- qmlUri:主 QML 文件的 URI。
- appName:要加载并启动的 Qt 应用库的名称。这对应于 Qt 应用设置中的 target 名称。
- qmlImportPaths:要传递的附加导入路径的字符串数组。
异常
如果参数无效,则抛出《InvalidParameterException》。
接口
public interface SignalListener
当信号被发出时,在Android UI线程上调用。
参数
- signalName:字面量信号名称
- value:由信号传递的值,如果信号没有参数,则为null。
public interface StatusChangeListener
当QML组件状态改变时,在Android UI线程上调用。
参数
- status:当前状态。
字段
状态值
状态可以是STATUS_NULL、STATUS_READY、STATUS_LOADING或STATUS_ERROR。更多信息,请参见QQuickView::Status。
方法
public void setProperty(String propertyName, Object value)
设置QML根对象上现有属性的值。支持的类型是Integer
、Double
、Float
、Boolean
和String
。这些类型转换为相应的QML类型int、double/float、bool和string。此函数不会在QML根对象上添加不存在属性。
参数
- propertyName:要设置其值的现有根对象属性名称
- value:属性值
public <T extends Object> T getProperty(String propertyName)
获取QML根对象上现有属性的值。支持的返回类型是Integer、Double、Float、Boolean和String。这些类型从相应的QML类型转换为int、double/float、bool和string。
参数
- propertyName:现有根对象属性的名称
返回
如果属性不存在或QML组件的状态不是STATUS_READY,则此函数将返回null。
异常
如果类型转换失败,抛出ClassCastException。
public <T> int addSignalListener(String signalName, Class<T> argType, SignalListener<T> listener)
将与QML根对象信号关联的一个SignalListener。
参数
- signalName:根对象信号的名称
- argType:信号参数的Class类型
- listener:SignalListener接口实例
返回
信号和监听器之间的Connection ID
或如果存在相同的信号和监听器之间的现有连接ID。如果QML根对象上不存在该信号,则返回负值。
public boolean removeSignalListener(int signalListenerId)
停止从addSignalListener()调用中获得的给定id的SignalListener监听信号。
参数
- signalListenerId:连接ID
返回
如果连接ID有效且已成功删除,则返回True,否则返回false。
public int getStatus()
获取QML组件的状态status。
返回
STATUS_READY 当 QML 准备就绪时。调用操作 QML根对象的方法,例如 setProperty(),getProperty(),和 addSignalListener(),仅当当前状态是 STATUS_READY
时才成功。它还可以返回其他代表底层 QQuickView 实例状态的 状态 值。
public void setStatusChangeListener(StatusChangeListener listener)
设置一个 StatusChangeListener 来监听状态变化。
参数
- listener:一个StatusChangeListener接口的实例。
© 2024 The Qt Company Ltd. 其中包含的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可版1.3的条款提供的。Qt及其相关标志是芬兰和/或其他国家的The Qt Company Ltd的商标。所有其他商标均属其各自所有者。