本人阅读能力真是堪忧。不管是看qt文档还是别人的教程。都感觉是一头雾水。在此尝试记录下相关问题,以后慢慢体会。
关于qt quick:用qml语言来编程。 属于declarative programming(声明式语言,声明式语言包括 regular如正则表达式,函数式语言如lisp,逻辑语言prolog等等。相对的,命令式语言 比如c,java),怎么理解呢?我也不太清楚,感觉声明式的就是在描述组件怎么用,需要哪些组件,而命令式的是自己具体实现计算过程<TODO>。
qt quick提供一个基础的Rectangle(继承自item类,item类是qtquick提供给我们最基础的视觉类),用以显示一个用户框框,效果呢可以达到纯色,或者梯度色,(想用其他复杂点的,得考虑使用canvas【画布】或者image等)。好了rectangle在手,矩形我有。
import QtQuick 2.3
Item {
width: 320
height: 480
Rectangle {
color: "#272822"
width: 320
height: 480
}
// This element displays a rectangle with a gradient and a border
Rectangle {
x: 160
y: 20
width: 100
height: 100
radius: 8 // This gives rounded corners to the Rectangle
gradient: Gradient { // This sets a vertical gradient fill
GradientStop { position: 0.0; color: "aqua" }
GradientStop { position: 1.0; color: "teal" }
}
border { width: 3; color: "white" } // This sets a 3px wide black border to be drawn
}
// This rectangle is a plain color with no border
Rectangle {
x: 40
y: 20
width: 100
height: 100
color: "red"
}
}
看,用qmlscene来预览qml的效果是不是超级方便呢。
主框框是一个item,它只有宽高等简单属性 而颜色固定。在框框内部,它定义了三个矩形,rectangle属性多了颜色 ,渐变,棱角平滑度,边框厚度等等。
这例子超级简单,不过谁能告诉我,水叮当是啥颜色?言归正传,从自带实例看到,这qml用的最多的就是定义属性,形式是 名称:值。
那么,实例中渐变那里又是什么鬼?怎么属性后边还跟着对象(类型名+大括号)呢?老衲也不是很清楚,以后再说(TODO)。
好啦,结束了第一节就是这么轻松,虽然还有问题遗留,但是我们初步接触了qt quick的rectangle,其他的问题以后再说,嘿嘿