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的函数分类进行良好的规划。
由于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的函数分类进行良好的规划。
相关文章推荐
- QML中的JavaScript用法详解
- QML中的JavaScript用法详解
- QML中的JavaScript用法详解(一)-----在qml中将字符串类型数据转换为整型数据
- QML中的JavaScript用法详解
- javascript some()函数用法详解
- javascript中call()和apply()的用法及区别详解
- JavaScript location对象用法详解
- JavaScript中bind、call、apply函数用法详解
- javascript中replace()用法详解
- 详解JavaScript中循环控制语句的用法
- Javascript中this的用法详解
- javascript中2个感叹号的用法实例详解
- javascript中clipboardData对象用法详解
- JavaScript中的this用法详解(续)
- javascript中的typeof 的用法详解
- javascript中的typeof 的用法详解
- Javascript中this的用法详解
- JavaScript封装的常用工具类库bee.js用法详解【经典类库】
- javascript replace()用法详解附实例代码
- javascript replace()用法详解附实例代码