没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|实施案例|编辑:鲍佳佳|2020-09-17 11:56:54.323|阅读 339 次
概述:Qt是一个跨平台框架,通常用作图形工具包,它不仅创建CLI应用程序中非常有用,而且能兼容多个平台。本文讲的是一个计算器的案例,它使用自定义组件,并使用AnimationController进行动画处理,并为应用程序逻辑添加JavaScript。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
Qt(发音为“ cute”,而不是“ cu-tee”)是一个跨平台框架,通常用作图形工具包,它不仅创建CLI应用程序中非常有用。而且它也可以在三种主要的台式机操作系统以及移动操作系统(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式设备,Android(Necessitas)和iOS的端口上运行。现在我们为你提供了免费的试用版。赶快点击下载Qt最新试用版吧>>
Qt quick示例-计算器本文讲的是一个计算器的案例,这是案例的下文部分,点击查看上文如何创建计算机示例。它使用自定义组件,并使用AnimationController进行动画处理,并为应用程序逻辑添加JavaScript。
动画组件我们使用显示类型来显示计算。在Display.qml中,我们使用图像来使显示组件看起来像一张纸条。用户可以拖动手柄以将显示从左向右移动。
当用户释放夹点时,我们在calqlatr.qml文件中定义的AnimationController QML类型会完成向前或向后运行受控动画的过程。要运行动画,我们根据方向调用completeToEnd()或completeToBeginning()。我们在MouseArea的onReleased信号处理程序中执行此操作,其中controller的AnimationController的ID是:
MouseArea {
...
onReleased: {
if (rewind)
controller.completeToBeginning()
else
controller.completeToEnd()
}
}
不像其他的QML动画类型,AnimationController不是由内部定时器,但其进展财产之间明确地设置为价值驱动0.0和1.0。
在AnimationController内部,我们并行运行两个NumberAnimation实例,以将数字键盘和显示组件同时移动到视图的相对侧。另外,我们运行一个SequentialAnimation实例以在过渡期间缩放数字键盘,从而使动画具有一定的深度。
AnimationController {
id: controller
animation: ParallelAnimation {
id: anim
NumberAnimation { target: display; property: "x"; duration: 400; from: -16; to: window.width - display.width; easing.type: Easing.InOutQuad }
NumberAnimation { target: pad; property: "x"; duration: 400; from: window.width - pad.width; to: 0; easing.type: Easing.InOutQuad }
SequentialAnimation {
NumberAnimation { target: pad; property: "scale"; duration: 200; from: 1; to: 0.97; easing.type: Easing.InOutQuad }
NumberAnimation { target: pad; property: "scale"; duration: 200; from: 0.97; to: 1; easing.type: Easing.InOutQuad }
}
}
}
我们使用该类型的缓动曲线Easing.InOutQuad将运动加速到一半,然后减速。
在Button.qml中,数字键盘按钮的文本颜色也被设置为动画。
Text {
id: textItem
...
color: (dimmable && dimmed) ? Qt.darker(button.color) : button.color
Behavior on color { ColorAnimation { duration: 120; easing.type: Easing.OutElastic} }
states: [
State {
name: "pressed"
when: mouse.pressed && !dimmed
PropertyChanges {
target: textItem
color: Qt.lighter(button.color)
}
}
]
}
我们使用Qt.darker() ,以使颜色变暗时,该按钮显示为灰色,并用Qt.lighter()来点亮当按下按钮。后者是在名为“pressed”的单独状态下完成的,该状态在设置按钮的MouseArea的属性时激活。
通过在属性上定义“ Behavior ”来对颜色变化进行动画处理color。
为了动态更改的dimmed所有按钮的属性NumberPad,我们将其buttonPressed信号连接到Button.qml中Button的updateDimmed()函数:
function updateDimmed() {
dimmed = window.isButtonDisabled(button.text)
}
Component.onCompleted: {
numPad.buttonPressed.connect(updateDimmed)
updateDimmed()
}
这样,当按下一个按钮时,所有按钮都会NumPad接收buttonPressed信号,并根据计算器引擎的状态被激活或停用。
执行计算Calculator.js文件定义了我们的计算器引擎。它包含用于存储计算器状态的变量,以及当用户按下数字和计算按钮时调用的函数。要使用引擎,我们将calqlatr.qml文件中的Calculator.js导入为CalcEngine:
import "content/calculator.js" as CalcEngine
导入引擎会创建一个新实例。因此,我们仅在主QML文件calqlatr.qml中执行此操作,文件中定义的根项目包含帮助程序功能,该功能允许其他类型访问计算器引擎:
function operatorPressed(operator) {
CalcEngine.operatorPressed(operator)
numPad.buttonPressed()
}
function digitPressed(digit) {
CalcEngine.digitPressed(digit)
numPad.buttonPressed()
}
function isButtonDisabled(op) {
return CalcEngine.disabled(op)
}
当用户按数字时,数字中的文本将出现在显示屏上。当他们按下运算符时,将执行适当的计算,并且可以使用等号(=)运算符显示结果。清除(C)按钮将重置计算器操作。
本篇文章中的内容你都学会了吗?如果这篇文章没能满足你的需求、点击获取更多文章教程!现在立刻下载Qt免费试用吧!更多Qt类开发工具QtitanRibbon、QtitanChart、QtitanNavigation、QtitanDocking、QtitanDataGrid在线订购现直降1000元,欢迎咨询慧都获取更多优惠>>
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ke049m.cn
文章转载自:



2023年2月24日,国际独立第三方检测、检验和认证机构德国莱茵TÜV集团为中移智行网络科技有限公司(以下简称“中移智行”)颁布了A-SPICE L3和ISO26262功能安全产品ASIL B认证证书,标志着中移智行在软件质量体系管理和产品技术方面走在行业前端,满足国际标准要求。
QinetiQ Space N.V.是总部位于英国的QinetiQ集团的比利时航天部门,专注于开发部署在恶劣太空环境中的高可靠性产品,包括航空电子设备、电力推进、微重力研究仪器、机器人系统、太空安全、太空探索、遥感和小型卫星系统。
NEC Telecom Software Philippines(NSP)是日本NEC Corporation 的子公司,位于马尼拉。NSP开发宽带和移动通信技术,以及 IT 和网络解决方案,以其高质量的输出满足客户最高水平的满意度。
英国赫尔大学(University of Hull)是一个发展个人、社交和学术的综合研究型大学。在最近一次的全国评估中,计算机科学研究在英国的影响力排名并列第五。专业领域包括计算科学、计算机游戏化、可靠地智能系统、机器人和人工智能、仿真和可视化。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@ke049m.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
半岛外围网上直营 