转自:https://blog.csdn.net/qq78442761/article/details/90604216
基本概念
这里的数据类型不仅仅有C++里面的int,String等,
还有个很有特点的类型var,这个又可以放数组,也可以放函数,也可以混着换,很少有趣。
举个栗子
程序运行截图如下:
后台打印如下:
QML debugging is enabled. Only use this in a safe environment.
qml: The mUrl is http://www.it1995.cn
qml: aNumber is : 100
qml: aBool is : true
qml: aString is : #FF008800
qml: aRect : 17 56
qml: The length of the array is : 6
qml: ------------------华丽的分割线------------------
qml: 1
qml: 2
qml: 3
qml: four
qml: five
qml: six
qml: ------------------华丽的分割线------------------
qml: 1
qml: 2
qml: 3
qml: four
qml: five
qml: six
qml: The date is : 周一 5月 27 00:00:00 2019 GMT+0800
qml: The function value is : Seven
main.qml:
import QtQuick 2.9
import QtQuick.Window 2.2
Window {
visible: true
width: 300
height: 200
title: qsTr("Hello World")
property string mString: "www.it1995.cn"
property int mInt: 88
property bool isFemale: false
property url mUrl: "http://www.it1995.cn"
property int aNumber: 100
property bool aBool: true
property var anotherString: String("#FF008800")
property color aColor: Qt.rgba(0.2, 0.3, 0.4, 0.5)
property rect aRect: Qt.rect(17, 56, 46, 10)
property point aPoint: Qt.point(10, 10)
property size aSize: Qt.size(10, 10)
property vector3d aVector3d: Qt.vector3d(100, 100, 100)
property var anArray: [1, 2, 3, "four", "five", (function(){ return "six" })]
property var anObject: {"foo": 10, "bar": 20}
property var aFunction: (function(){ return "Seven"; })
property var aFont: Qt.font({family: "Consolas", pointSize: 30, bold: false})
property date mDate: "2019-05-27"
Text {
id: mTextID
anchors.centerIn: parent
text: mString
font: aFont
}
Component.onCompleted: {
print("The mUrl is " + mUrl)
//var datatype
console.log("aNumber is : " + aNumber)
console.log("aBool is : " + aBool)
console.log("aString is : " + anotherString)
console.log("aRect : " + aRect.x + " " + aRect.y)
console.log("The length of the array is : " + anArray.length)
print("------------------华丽的分割线------------------")
anArray.forEach(function(value, index){
if(index === 5){
console.log(value())
}
else{
console.log(value)
}
})
print("------------------华丽的分割线------------------")
for(var i = 0; i < anArray.length; i++){
if(i == 5){
console.log(anArray[i]())
}
else{
console.log(anArray[i])
}
}
console.log("The date is : " + mDate)
console.log("The function value is : " + aFunction())
}
}
其中原文的代码段是这样的:
property string mString: "www.it1995.cn"
property int mInt: 88
property bool isFemale: false
property url mUrl: "http://www.it1995.cn"
property var aNumber: 100
property var aBool: true
property var anotherString: String("#FF008800")
property var aColor: Qt.rgba(0.2, 0.3, 0.4, 0.5)
property var aRect: Qt.rect(17, 56, 46, 10)
property var aPoint: Qt.point(10, 10)
property var aSize: Qt.size(10, 10)
property var aVector3d: Qt.vector3d(100, 100, 100)
property var anArray: [1, 2, 3, "four", "five", (function(){ return "six" })]
property var anObject: {"foo": 10, "bar": 20}
property var aFunction: (function(){ return "Seven"; })
property var aFont: Qt.font({family: "Consolas", pointSize: 30, bold: false})
property date mDate: "2019-05-27"
有一堆的警告
我们可以看出,能制定具体类型的时候就指定,能提高一点点效率。
原文:https://blog.csdn.net/qq78442761/article/details/90604216