赞
踩
import QtQuick 2.0
Image {
: root id
: "Images/background.png" source
}
因为QML不作任何限制,元素类型使用Image作为根元素,使用source属性作为根元素的背景图像。
注:
每个元素都具有属性,例如一个图象,有width、height,还有其它属性,像source。图像元素的size属性从图像尺寸自动扣除。否则,我们就需要设置width、height属性为一些有用的像素值。
最标准的元素都位于QtQuick 2.0模块—我们在第一行包含的import语句。
id特殊属性是可选的,并包含一个标识符,后来在在文件的其它地方中引用这个元素。重要提示:id属性一旦被设置就不能被更改,且不能在运行时设置。使用root作为ID为根元素只是一种作者的习惯,在较大QML文档中引用最顶层元素则可以预测。
风轮的用户界面的前景元素放置被替换为另一个图片。
通常情况下你的用户界面将被由许多不同的元素类型,而不仅仅是Image元素,像下面这个例子:
import QtQuick 2.0
Image {
: root id
{ Image
: wheel id
: parent anchors.centerIn
: "Images/pinwheel.png" source
}
}
使用anchor属性放置风轮在中央位置,锚允许指定父和兄弟姐妹对象之间的几何关系。放在另一个元素的中心(anchors.centerIn: parent)。有left、right、top、bottom、centerIn,、fill、verticalCenter、horizontalCenter关系。当然,他们需要匹配,若锚在顶部元素的左侧则它没有任何意义。
所以我们设置风轮作为背景在父窗体的中心。
注:
有时候你需要精确做小的调整。这将有可能用anchors.horizontalCenterOffset或anchors.verticalCenterOffset。类似的调整属性也适用于所有其它锚。请咨询锚属性的完整列表的文档。
将一个图像作为根矩形元素的子元素展现了一种声明式语言的一个重要概念。描述用户界面层和分组的顺序,其中最顶层(矩形)是首先绘制的,子层在包含元素的局部坐标系中绘制。
为了使展现变得更有趣,我们想加上互动。想法是,当用户按下鼠标中的某处场景以便转动风轮。使用MouseArea元素。
importQtQuick 2.0
Image{
: id root
Image {
: id wheel
: anchors.centerIn parent
: source "Images/pinwheel.png"
MouseArea {
: anchors.fill parent
: onClicked wheel.rotation += 90
}
}
}
当用户点击它里面的覆盖面积时,鼠标区域发出的信号。可以连接到这个信号来覆盖onClicked功能。在这种情况下,参考风轮图像90度旋转。
注:
这适用于每一个信号,命名为:on + SignalName(如:onClicked)。当所有属性值发生了改变时,还发出一个信号,命名为:on + PropertyName + Changed(如:onValueChanged)。
如果一个属性改变你可以用onWithChanged观察。
现在,风轮可以旋转,但仍然不流利。旋转属性将立即更改。我们希望,属性90度改变随着时间的改变来进行。现在动画开始发挥作用。要启用此我们使用一个动画类型调用属性的行为,它指定定义属性的行为的每一个变化。这仅是几种类型声明一个动画。
importQtQuick 2.0
Image{
: id root
Image {
: id wheel
: anchors.centerIn parent
: source "Images/pinwheel.png"
MouseArea {
: anchors.fill parent
: onClicked wheel.rotation += 90
}
Behavior on rotation {
NumberAnimation {
: duration 250
}
}
}
}
现在,每当风轮旋转改变时,将会使用NumberAnimation为250毫秒的持续时间进行动画处理。因此,每个90度的旋转将消耗250毫秒。
现在,风轮看起来已经好多了。希望这可以让你更好地理解关于Qt Quick的程序是怎么工作。
Qt的构建模块
Qt5包括大量的模块。一般来说一个模块是开发者使用的库。有些模块在Qt应用平台里是强制性的。他们形成了一套名为Qt的必备模块。也有很多模块都是可选的,并形成了Qt添加功能模块。大多数开发人员不需要使用它们,但很高兴知道它们为共同挑战提供了无价的解决方案。
三、Qt的必备模块
Qt的必备模块强制应用在Qt启用平台里。他们提供的基础开发现代Qt5应用程序使用Qt Quick 2。
核心基础模块
Qt5模块的最小集合进行QML编程。
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
Qt插件
除了必不可少的模块,Qt还提供了软件开发的附加模块,它不是发行版的一部分。以下是附加模块的一个简短的列表。
注:
这些模块不是发行版的一部分,取决于有多少活跃的贡献者以及如何得到测试。
四、支持的平台
Qt支持多种平台。主要桌面和嵌入式平台也支持。通过Qt应用程序的抽象,如今可以则可以更容易地移植到自己的平台上。
在一个平台上测试Qt5比较耗时。一个子平台被qt-project选中来构建参考平台。这些平台通过系统测试彻底测试,以确保最佳的质量。不过提醒你:没有代码错误是免费的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。