目录

基本概念

代码及演示

源码打包下载


基本概念

qml可以使用JavaScript完成一些动画的功能,其中可以写一个Js文件,并且导入,这样可以让程序结构更加清晰;

但这个JavaScript和web版的JavaScript区别还是很大的。

代码及演示

效果如下:

程序结构如下:

main.cpp


import QtQuick 2.9
import QtQuick.Window 2.2
import "Test.js" as TestWindow {visible: truewidth: 640height: 480title: qsTr("Hello World")Rectangle{id: rectanglewidth: 100height: 100anchors.left: parent.leftanchors.leftMargin: - width / 2color: "gray"radius: widthTriangle {anchors.centerIn: parent}//定时器Timer {id: showTimerinterval: 10repeat: truetriggeredOnStart: trueonTriggered: {console.debug(rectangle.anchors.leftMargin)if(rectangle.anchors.leftMargin >= 0){console.debug("show over")showTimer.stop()}else{Test.showPic(rectangle)}}}Timer {id : hideTimerinterval: 10repeat: truetriggeredOnStart: trueonTriggered: {console.debug(rectangle.anchors.leftMargin)if(rectangle.anchors.leftMargin < -50){console.debug("hide over")hideTimer.stop()}else{Test.hidePic(rectangle)}}}MouseArea {width: parent.widthheight: parent.heightonEntered: {if(rectangle.anchors.leftMargin === 0){hideTimer.start()}else{showTimer.start()}}}}}

main.qml

import QtQuick 2.9
import QtQuick.Window 2.2
import "Test.js" as TestWindow {visible: truewidth: 640height: 480title: qsTr("Hello World")Rectangle{id: rectanglewidth: 100height: 100anchors.left: parent.leftanchors.leftMargin: - width / 2color: "gray"radius: widthTriangle {anchors.centerIn: parent}//定时器Timer {id: showTimerinterval: 10repeat: truetriggeredOnStart: trueonTriggered: {console.debug(rectangle.anchors.leftMargin)if(rectangle.anchors.leftMargin >= 0){console.debug("show over")showTimer.stop()}else{Test.showPic(rectangle)}}}Timer {id : hideTimerinterval: 10repeat: truetriggeredOnStart: trueonTriggered: {console.debug(rectangle.anchors.leftMargin)if(rectangle.anchors.leftMargin < -50){console.debug("hide over")hideTimer.stop()}else{Test.hidePic(rectangle)}}}MouseArea {width: parent.widthheight: parent.heightonEntered: {if(rectangle.anchors.leftMargin === 0){hideTimer.start()}else{showTimer.start()}}}}}

Test.js

function showPic(item) {item.anchors.leftMargin = item.anchors.leftMargin + 1
}function hidePic(item) {item.anchors.leftMargin = item.anchors.leftMargin - 1
}

Triangle.qml

import QtQuick 2.5Canvas {id: triangleproperty color triangleColor: "blue"width: parent.width - parent.width / 3height: parent.height -  parent.height / 3contextType: "2d"onPaint: {context.lineWidth = 0context.strokeStyle = "#00000000"context.fillStyle = triangleColorcontext.beginPath();context.moveTo(0, 0)context.lineTo(0, triangle.height);context.lineTo(triangle.width, triangle.height/2);context.closePath();context.fill()context.stroke();}
}

源码打包下载

https://github.com/fengfanchen/Qt/tree/master/JavaScript%20Of%20QML%20Slide

QML工作笔记-仿前端滑出界面(JavaScript)相关推荐

  1. javaWeb学习笔记1—前端三件套 HTML CSS JavaScript

    学习视频地址 javaWeb学习笔记-前端三件套 HTML CSS JavaScript 1.字体标签 2. 字符实体 3.标题标签 4.超链接 5.列表标签 6. img标签 路径 7.表格 8.i ...

  2. QML工作笔记-界面登录框设置(方便其他控件居中)

    目录 效果及演示 伪代码 效果及演示 这个功能十分有用,并且常用,在此记录下! 如下效果: 下面的图我不再截全了.这个框只是方便开发者看,现在把框去掉! 如果不想让其透明,可以转换为这样的效果: 很丑 ...

  3. Qt工作笔记-仿QQ登录界面(换肤,切换语言)

    本程序含有资源文件,和QSS,在此博文不在展示. 源码下载地址: https://download.csdn.net/download/qq78442761/10389816 程序运行截图如下: 本程 ...

  4. QML工作笔记-2种输入框的使用(TextField与TextInput)

    目录 演示 代码 演示 这里如下图,上个的那个是TextField,下面的那个是TextInput加一个Rectangle 其中上面那个蓝框包着的就是TextField,下面那个是TextInput ...

  5. QML工作笔记-Key Element的使用

    目录 基本概念 演示及代码 源码打包下载 基本概念 Key允许按键,这个比QGraphics框架好用多了,开发起来真的是快. 演示及代码 演示运行截图如下: 程序结构如下: 源码如下: main.cp ...

  6. QML工作笔记-NumberAnimation、RotationAnimation、Timer综合使用

    目录 例子及演示 打包下载 例子及演示 运行截图如下: git图如下: 程序结构如下: 源码如下: main.cpp #include <QGuiApplication> #include ...

  7. QML工作笔记-为TestField戴上皮肤

    目录 基本概念 代码及演示 源码打包下载 基本概念 以目前的技术累计来说,有3种方式进行美化! 1. 修改TextField本生的属性: 2. 加上TextFieldStyle进行美化: 3. 在Te ...

  8. QML工作笔记-为PushButton戴上皮肤

    目录 基本概念 博主例子 源码打包下载 基本概念 以前写过一个PushButton的基本用法,链接如下: https://blog.csdn.net/qq78442761/article/detail ...

  9. QML工作笔记-PC端和Android端布局错位问题

    目录 问题演示 解决办法 问题演示 比如如下的程序,在PC端运行: 而在Android端: 可见有如下的问题.造成这个原因可以是两平台的差异.得手动调整Android端的布局 解决办法 参考我以前的这 ...

最新文章

  1. MVP谈WinHEC:Demo很炫 Windows 7启动快
  2. Vim+ctags+cscope+Nerdtree+Taglist入门
  3. 【“互联网+”大赛华为云赛道】CloudIDE命题攻略:明确业务场景,快速开发插件
  4. fetchtype 动态控制_hibernate 关于 注解配置@Basic(fetch=FetchType.LAZY) 不起效果
  5. 按钮灭了_劣质灭火器整瓶都灭不掉一盆火 教你几招辨别消防产品真假
  6. proteus实现单片机的仿真
  7. 添加源ubuntu_x64 安装 Adobe Reader
  8. python opencv 二值化 计算白色像素点并计算比例输出可视化
  9. 性能工具之ab压力测试工具及ab命令详解
  10. html canvas缩放抗锯齿,Html5 canvas drawImage:如何应用抗锯齿
  11. vs2019下载安装
  12. vmware虚拟机的作用
  13. 港口门机风速信息GPRS采集系统
  14. java 阿拉伯数字日期转换为中文大写日期方法_java方法转换大写日期及人民币大写转换方式 .txt...
  15. html中竖线怎么写,网页中竖线的几种做法
  16. 【云原生之k8s】k8s基础详解
  17. 计算天数c语言实验报告,c语言实例--计算天数
  18. 什么是好代码-代码整洁之道阅读笔记
  19. 阅读论文《The Perception-Distortion Tradeoff》
  20. [教程10]TensorFlow线性模型教程

热门文章

  1. 安装程序集'' policy.8.0.microsoft.vc80.atl,type=''win32-
  2. DDD~DDD从零起步架构说明
  3. 【转】vc6.0移植到VS2010遇到的问题,散分给大家,虽然分不多,各位帮忙
  4. CryptoHelper HMAC/X509/RSA/TripleDes/Hash/MD5/SHA1 (Release 3)
  5. C#验证控件使用方法及常用正则表达式例析转
  6. 将整张网页存成png图片
  7. 润米咨询创始人刘润:传统企业数字化转型之道
  8. 盖茨每一秒能赚多少钱,他现在最担心的是什么?
  9. 15个优雅的Python编程技巧,掌握后瞬间玩转Python
  10. java mqtt协议_基于 tio 实现 mqtt5 协议之 micamqtt