QML--学习第三篇--状态和变换
来源:互联网 发布:mac怎么看jdk安装路径 编辑:程序博客网 时间:2024/05/22 14:28
第二篇中,实现了字体颜色的变化,对于 QML--学习第二篇 的文本,还可以实现“状态”和“变换”以实现动画效果。上代码:
调用函数main.cpp
#include <QtWidgets/qapplication.h>#include <qtdeclarative/QDeclarativeview.h>int main(int argc, char *argv[]){QApplication a(argc, argv);QDeclarativeView *m_qmlView = new QDeclarativeView(); m_qmlView->setSource(QUrl::fromLocalFile("source.qml")); //load qml filem_qmlView->show();return a.exec();}
source.qml
import QtQuick 1.0Rectangle { id: page width: 320; height: 240 color: "lightgray" Text { id: helloText text: "Hello world!" y: 30 anchors.horizontalCenter: page.horizontalCenter font.pointSize: 24; font.bold: true MouseArea { id: mouseArea; anchors.fill: parent } //定义了名字为down的状态,属性是y==160, 旋转:180度;颜色:红色 states: State { name: "down"; when: mouseArea.pressed == true PropertyChanges { target: helloText; y: 160; rotation:180; color:"red" } } //从qml默认状态,到状态down的变换 transitions: Transition { from: "" to: "down" reversible: true ParallelAnimation{ //提供了并行的动画效果 NumberAnimation{properties: "y,rotation"; duration:500; easing.type: Easing.InOutQuad} ColorAnimation {duration: 500 } } // SequentialAnimation{//顺序执行的动画效果 // NumberAnimation{properties: "y,rotation"; duration:500; easing.type: Easing.InOutQuad} // ColorAnimation {duration: 500 } // } } } Grid { id: colorPicker x: 4; anchors.bottom: page.bottom; anchors.bottomMargin: 4 rows: 2; columns: 3; spacing: 3 Cell { cellColor: "red"; onClicked: helloText.color = cellColor } Cell { cellColor: "green"; onClicked: helloText.color = cellColor } Cell { cellColor: "blue"; onClicked: helloText.color = cellColor } Cell { cellColor: "yellow"; onClicked: helloText.color = cellColor } Cell { cellColor: "steelblue"; onClicked: helloText.color = cellColor } Cell { cellColor: "black"; onClicked: helloText.color = cellColor } }}
source.qml使用Cell自定义控件,Cell.qml
import QtQuick 1.0Item { id: container property alias cellColor: rectangle.color signal clicked(color cellColor) width: 40; height: 25 Rectangle { id: rectangle border.color: "white" anchors.fill: parent } MouseArea { anchors.fill: parent onClicked: container.clicked(container.cellColor) }}
库文件:Qt5Declaratived.lib Qt5Guid.lib Qt5Widgetsd.lib Qt5Cored.lib
环境: VS2010 + win7-64位 + Qt5.1.1
运行效果:点击 文本,实现动画效果运行效果:
0 0
- QML--学习第三篇--状态和变换
- QML--学习第三篇--状态和变换
- QML图像、状态和动画--QML状态
- qml学习--------------图形的变换
- QML图像、状态和动画--QML动画
- 【canvas学习笔记六】状态保存和变换
- QML图像、状态和动画--渐变
- QML Flipable、Flickable和状态与动画
- 使用视图状态和变换
- 第三篇 学习OpenCV之图像变换(1)
- 第三篇 学习OpenCV之图像变换(2)
- 第三篇 学习OpenCV之图像变换(3)
- QML--学习第二篇
- QML--学习第二篇
- QML学习:对象和属性
- 第三篇 使用C++扩展QML功能
- QML图像、状态和动画--缩放、旋转和平移
- qt4 qml Flipable、Flickable和状态与动画
- WIKIOI 2488 绿豆蛙的归宿 题解与分析
- 深度学习(Deep Learning,DL)参考网站和资料汇总
- 2013 PyCon总结
- 当程序到后台后,继续完成Long-Running Task 任务
- 线程编程指南 Threading Programming Guide (1)[苹果官方文档的翻译]
- QML--学习第三篇--状态和变换
- POJ 1258 Agri-Net|| POJ 2485 Highways MST
- WIKIOI 3162 抄书问题 题解与分析
- VS2010/MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar)
- 最快速的Android开发环境搭建ADT-Bundle及Hello World
- 情诗名句,与君共享
- Windows系统运行中的快捷键
- linux中的用户和组管理(进阶篇)
- 笨小熊—ny62