qml 引入js_在QML中利用Javascript动态生成画面

本文介绍了如何在QML中结合JavaScript动态生成画面。通过创建动态QML文件作为模板,然后利用JavaScript的createComponent方法和Qt.createQmlObject动态创建QML对象,并管理这些对象的创建与销毁。
摘要由CSDN通过智能技术生成

标签:

在这篇文章中介绍如何使用Javascript来动态生产画面。 我们在先前的例子中“如何使用QML动态产生Component来完成我们的气球游戏 (2)”已经对动态生产QML做了一些描述。也许那个项目比较复制,现在我来用一些简单的例子来说明一下,这样更加直观。更多的说明可以参阅文章“Dynamic

QML Object Creation from JavaScript”。

1)创建我们的动态QML文件

这个文件将被用来被Javascript来动态生产。这是一个模版尽管每次生成的object的属性可能会不一样。

dynamic-image.qml

import QtQuick 2.0

Image {

width: 400

height: 225

source: "images/image1.jpg"

Image {

id: overlay

anchors.fill: parent

source: "images/image2.jpg"

opacity: 0;

Behavior on opacity { NumberAnimation { duration: 300 } }

}

MouseArea {

anchors.fill: parent

onClicked: {

if (overlay.opacity === 0)

overlay.opacity = 1;

else

overlay.opacity = 0;

}

}

}

这是一个很简单的QML文件。它显示了一个画面,当我们点击画面时,overlay中的画面将会交叉显示或隐藏。

2)创建动态生产QML Object的Javascript

create-component.js

var component;

function createImageObject(x, y) {

component = Qt.createComponent("dynamic-image.qml");

if (component.status === Component.Ready || component.status === Component.Error)

finishCreation(x, y);

else

componen

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值