牛骨文教育服务平台(让学习变的简单)
博文笔记

QML中的JavaScript用法详解

创建时间:2017-03-30 投稿人: 浏览次数:1320
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: estTestviewdebugview.exe exited with code 0
该方法,实现了和调用js文件一样的效果,可以对qml的函数分类进行良好的规划。



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。