您的位置:首页 > Web前端 > JavaScript

QML中的JavaScript用法详解

2017-03-30 22:40 483 查看
1.用法一

由于qml是js的拓展,可以在qml中创建js的对象,js的对象有数组,日期,算数,逻辑,正则表达式,对象,都需要使用new来创建,创建的名字也是固定的,固定的名字可以调用js的内建方法。

使用js对象来接受(接受c++的数据),或者产生数据,使用qml的自带对象的方法,再次进行处理数据,这样大部分数据就可以是我们想要的数据了,例如

function myfunction(value)
{

var date = new Date(value);//调用js对象,将一个int类型的时间,传入创建对象

//Date中,由这个js对象进行内建

var strTime = Qt.formetDatetime(date,"yyyy-mm-dd hh:MM:ss");//Qt.formetDatetime是qml的

//对象,利用qml对象,对数据处理,从而转换为想要的字

//符串

return strTime; //返回转换格式后字符串的
}

2.用法二
在qml中调用js文件,需要调用import “xx.js” as Cx 即可调用js文件中的函数了,但是,却不能使用同样的方法来调用qml文件,但是,我们可以通过另外一种途径来实现相同的效果。

qml中的文件实例化后都是要被显示的,但是,Item却是object对象,可以用来存放函数,相当于js文件,qml文件调用qml文件,需要包含文件夹,在父类中实例化该qml文件,通过id来调用其中的函数。
直接上代码:
//De.qml

import
QtQuick 2.0

Item
{
function
yy()
{
print("i
am
a
qml
function")
}
}

De.qml放在op目录中,op目录与main.qml在同一级
//main.qml
import
QtQuick 2.5
import
QtQuick.Controls 1.4

import
"./op"

Rectangle
{
id:root
visible:
true
width:
640
height:
480
color:"red"

Component.onCompleted:

{
}
De
{
id:de
}
function
xiaoBei()
{
var
obj
= Number.length
console.log(obj)
}

property
date
currentDate:
new
Date()
property
string
dateString

MouseArea
{
anchors{fill:parent}
onClicked:
{
xiaoBei();
de.yy()
}
}
}
运行结果:
qml: 1
qml: i am a qml function
F:\testTest\view\debug\view.exe exited with code 0

该方法,实现了和调用js文件一样的效果,可以对qml的函数分类进行良好的规划。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: