当前位置: 首页 > news >正文

Qt xml学习之calculator-qml

1.功能说明:制作简易计算器
2.使用技术:qml,scxml
3.项目效果:
在这里插入图片描述

4.qml部分:

import Calculator 1.0  //需要引用对应类的队友版本
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 1.4
import QtScxml 5.8  // 引入QScxmlStateMachineWindow {visible: truewidth: 640height: 480title: qsTr("Hello World")Calculator{id:calculatorrunning: trueEventConnection{events: ["Display"] //触发事件名,可自定义onOccurred: name.text = event.data.display_res //event是当前触发事件}}Column{spacing:10//结果区Item {id: resultZonewidth: 640height: 30Rectangle{color: "#00ff55"anchors.fill: parentText {id: nametext: qsTr("text")color: "#000000"font.bold:truefont.pixelSize:24}}}//数字区Item{width: 640height: 320Grid{columns:3Repeater{model: ["1","2","3","4","5","6","7","8","9"]Button{text:modelDataheight:100onClicked: calculator.submitEvent(eventname)//submitEvent ,QScxmlStateMachine 方法property string eventname: {return "DIGIT." + text}}}}}//操作区Item{id:operwidth: 640height: 50Row{Repeater{model:["+", "-", "*", "/"]Button{text:modelData;width:120height:40onClicked: calculator.submitEvent(eventname);property string eventname: {switch(text){case "+" :return "OPER.PLUS"case "-" :return "OPER.MINUS"case "*" :return "OPER.STAR"case "/" :return "OPER.DIV"}}}}}}//计算‘=’Button{text:"="onClicked: calculator.submitEvent("EQUALS")}}}

5.scxml部分
帮助文档:https://www.w3.org/TR/scxml/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
_event指的是当前事件,查阅帮助文档可知
在这里插入图片描述
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" binding="early" xmlns:qt="http://www.qt.io/2015/02/scxml-ext" name="Calculator" qt:editorversion="4.12.2" datamodel="ecmascript" initial="work"><qt:editorinfo initialGeometry="48.45;-3.09;-20;-20;40;40"/><state id="work"><qt:editorinfo scenegeometry="327.40;189.57;-30.23;54;456.33;372.10" removedInitial="Parallel_1" geometry="327.40;189.57;-357.63;-135.57;456.33;372.10"/><transition type="internal" event="UPDATE_DISPLAY"><send event="Display"><param name="display_res" expr="short_res==''?res:short_res"/></send><log label="'log'" expr="res"/></transition><state id="Ready"><qt:editorinfo scenegeometry="172.79;135.84;112.79;85.84;146.57;100" geometry="-106.05;-23.24;-60;-50;146.57;100"/><onentry><assign location="res" expr="0"/><send event="UPDATE_DISPLAY"/><log label="'in ready'" expr="0"/><assign location="short_res" expr="''"/></onentry><transition type="internal" event="DIGIT" target="init_input"><qt:editorinfo movePoint="-30.71;1.54"/><assign location="short_res" expr="''"/></transition></state><state id="init_input"><qt:editorinfo scenegeometry="209.21;274.28;93.21;224.28;176;146" geometry="-69.63;115.20;-116;-50;176;146"/><onentry><assign location="short_res" expr="short_res+_event.name.substr(_event.name.lastIndexOf('.')+1)"/><send event="UPDATE_DISPLAY"/></onentry><transition type="internal" event="DIGIT"><assign expr="short_res+_event.name.substr(_event.name.lastIndexOf('.')+1)" location="short_res"/><send event="UPDATE_DISPLAY"/></transition><transition type="internal" event="OPER"><if cond="'PLUS'==_event.name.substr(_event.name.lastIndexOf('.')+1)"><assign location="short_res" expr="short_res+'+'"/><elseif cond="'MINUS'==_event.name.substr(_event.name.lastIndexOf('.')+1)"/><assign expr="short_res+'-'" location="short_res"/><elseif cond="'STAR'==_event.name.substr(_event.name.lastIndexOf('.')+1)"/><assign location="short_res" expr="short_res+'*'"/><elseif cond="'DIV'==_event.name.substr(_event.name.lastIndexOf('.')+1)"/><assign location="short_res" expr="short_res+'/'"/></if><send event="UPDATE_DISPLAY"/></transition><transition type="internal" event="EQUALS"><assign expr="eval(short_res)" location="short_res"/><send event="UPDATE_DISPLAY"/></transition></state></state><datamodel><data id="res"/><data id="short_res"/></datamodel>
</scxml>

相关文章:

Qt xml学习之calculator-qml

1.功能说明&#xff1a;制作简易计算器 2.使用技术&#xff1a;qml,scxml 3.项目效果&#xff1a; 4.qml部分&#xff1a; import Calculator 1.0 //需要引用对应类的队友版本 import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 1.4 import QtScxml…...

低代码开发系统是什么?它有那些部分组成?

低代码开发系统是什么&#xff1f;它有那些部分组成&#xff1f; 一、引言 在当今快速变化的商业环境中&#xff0c;企业对于快速响应市场需求、降低开发成本和提高开发效率的需求日益增强。低代码开发系统&#xff08;Low-Code Development Platform&#xff09;应运而生&am…...

2024年西安交通大学程序设计竞赛校赛

2024年西安交通大学程序设计竞赛校赛 文章目录 2024年西安交通大学程序设计竞赛校赛D瑟莉姆的宴会E: 雪中楼I: 命令行(待补)J&#xff1a;最后一块石头的重量(待补)K: 崩坏&#xff1a;星穹铁道(待补)M&#xff1a;生命游戏N: 圣诞树 D瑟莉姆的宴会 解题思路&#xff1a; ​ …...

【学习Day5】操作系统

✍&#x1f3fb;记录学习过程中的输出&#xff0c;坚持每天学习一点点~ ❤️希望能给大家提供帮助~欢迎点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;指点&#x1f64f; 学习编辑文章的时间不太够用&#xff0c;先放思维导图&#xff0c;后续复习完善细节。...

学习小记录——python函数的定义和调用

今日小好运&#xff0c;未来有好运。&#x1f381;&#x1f496;&#x1fad4; 分享个人学习的小小心意&#xff0c;一起来看看吧 函数的定义 函数通常来说就是带名字的代码块&#xff0c;用于完成具体的工作&#xff0c;需要使用的时候调用即可&#xff0c;这不仅提高代码的…...

RHEL7.9修改分区

系统RHEL7.9 他因为安装软件&#xff0c;需要修改分区 进入超级用户root&#xff0c;输入lsblk 查看分区&#xff0c;可见465.8G系统盘sda下有三个物理卷&#xff0c;其中sda3下/home有410.6G&#xff0c;需要这部分拆分出200G软件和100G的数据库分区 备份/home 目录下文件 c…...

【Linux】命名管道

一、命名管道的原理 在前面的博客中&#xff0c;我们学习了匿名管道&#xff0c;了解到了两个具有血缘关系的进程之间是如何进行通信的&#xff1f;那么在没有血缘关系&#xff08;毫不相关&#xff09;的进程之间是如何进行通信的&#xff1f; 大致思路是一样的&#xff0c;我…...

IMX6Q基于linux4.1.15调试音频芯片tas2505

IMX6Q基于linux4.1.15调试音频芯片tas2505 1、开发环境2、初步想法3、开发过程4、tas2505重要的寄存器5、遇到的问题1、开发环境 芯片:IMX6Q (NXP系列) 内核版本:linux4.1.15 Ubuntu版本:16.04 目标模块:tas2505 2、初步想法 由于该电路是由外部晶振提供的时钟频率24.5…...

卷积常用网络

目录 1.AlexNet2.VGG3.GoogleNet4.ResNet5.MobileNet 1.AlexNet AlexNet是2012年ISLVRC 2012&#xff08;ImageNet Large Scale Visual Recognition Challenge&#xff09;竞赛的冠军网络。 首次利用 GPU 进行网络加速训练。使用了 ReLU 激活函数&#xff0c;而不是传统的 Si…...

Firebase Local Emulator Suite详解

文章目录 Firebase Local Emulator Suite 组件安装和使用步骤1. 安装 Firebase CLI2. 初始化 Firebase 项目3. 配置模拟器4. 启动模拟器5. 配置应用程序使用本地模拟器 常见用途 Firebase Local Emulator Suite 是一组本地服务&#xff0c;可以模拟 Firebase 平台的在线服务&am…...

计算机组成原理·存储系统疑点归纳

组原这门课有点学得不是很懂&#xff0c;现在快考试了&#xff0c;挑几个做错了的题分析、记录一下。 N o . 1 \mathit{No}.1 No.1  x x x、 y y y 为定点整数&#xff0c;其格式为 1 1 1 位符号位、 n n n 位数值位&#xff0c;若采用补码一位乘法实现乘法运算&#xff0c;则…...

在 GPU 上实现全规模文件系统加速

摘要 现代高性能计算和人工智能计算解决方案经常使用 GPU 作为其主要计算能力来源。这就为 GPU 应用程序的存储操作造成了严重的不平衡&#xff0c;因为每一个此类存储操作都必须向 CPU 发出信号并由 CPU 处理。在 GPU4FS 中&#xff0c;我们针对这种不平衡提出了一个彻底的解决…...

代码随想录算法训练营Day7|454.四数相加II、 383. 赎金信、15. 三数之和、 18. 四数之和

454.四数相加II 四个数组分成两组进行for循环&#xff0c;先用HashMap存储所有第一组for循环出现的和的次数。再进行第二组for循环&#xff0c;每一次得出的和判断其负数是否在map的key中&#xff0c;如果存在&#xff0c;就加上这个value。 class Solution {public int four…...

编译器屏障概述

文章目录 1. 前言2. 编译器内存屏障2.1 编译器内存访问重排序规则2.2 编译器屏障的几种形式2.2.1 显式编译器屏障2.2.2 隐式编译器屏障2.2.3 硬件内存屏障充当编译屏障2.2.4 编程语言内存模型提供的编译屏障 2.3 编译器内存屏障实例2.3.1 Linux spinlock 3. 结语4. 参考资料 1.…...

RUST宏编程入门

宏指示符 在Rust的宏编程中&#xff0c;宏可以接受多种类型的参数&#xff0c;称为“指示符”。这些指示符帮助宏识别不同类型的代码片段&#xff0c;并相应地处理它们。 这里列出全部指示符&#xff1a; blockexpr 用于表达式ident 用于变量名或函数名itemliteral 用于字面常…...

linux安装srs

获取srs cd /opt git clone -b 4.0release https://gitee.com/ossrs/srs.git cd srs/trunk 启动srs ./objs/srs -c conf/srs.conf ./etc/init.d/srs status 访问http://192.168.220.146:8080/出现下方图片说明安装成功 点击进入SRS控制台看到下方图片...

IO流(2)

缓冲流 字节缓冲流 利用字节缓冲区拷贝文件&#xff0c;一次读取一个字节&#xff1a; public class test {public static void main(String [] args) throws IOException {//利用字节缓冲区来拷贝文件BufferedInputStream bisnew BufferedInputStream(new FileInputStream(&…...

【docker】docker启动bitnami/mysql

说明&#xff1a;-v 宿主机目录:docker容器目录&#xff0c;-p 同理 注意&#xff1a;/opt/bitnami/mysql/conf/bitnami 目录自定义conf的目录&#xff0c;不能使用原有的/opt/bitnami/mysql/conf 目录。 容器启动后可在宿主机的/宿主/mysql8.0/conf&#xff0c;添加my_custom.…...

边缘计算、云计算、雾计算在物联网中的作用

边缘计算和雾计算不像云那样广为人知&#xff0c;但可以为企业和物联网公司提供很多帮助。这些网络解决了物联网云计算服务无法解决的许多问题&#xff0c;并使分散的数据存储适应特定的需求。让我们分别研究一下边缘计算、雾计算和云计算的优势。 雾计算的好处 低延迟。雾网络…...

【c语言】探索内存函数

探索内存函数 memcpy函数memmove函数memset函数memcmp函数&#xff1a; memcpy函数 memcpy函数声明&#xff1a; void * memcpy ( void * destination, const void * source, size_t num );将source空间下的num个字符复制到dest中去 函数的使用&#xff1a; 将字符数组a的5字…...

给嵌入式新手的Cortex-M0内核超详细图解:从寄存器到中断,一篇搞定STM32/GD32入门

给嵌入式新手的Cortex-M0内核超详细图解&#xff1a;从寄存器到中断&#xff0c;一篇搞定STM32/GD32入门 刚拿到STM32开发板时&#xff0c;看着密密麻麻的引脚和上百页的芯片手册&#xff0c;我完全不知道从哪里开始。直到导师指着原理图说&#xff1a;"把芯片想象成一个忙…...

打破BIM模型Web化壁垒:Revit2GLTF的轻量化转换技术革新

打破BIM模型Web化壁垒&#xff1a;Revit2GLTF的轻量化转换技术革新 【免费下载链接】Revit2GLTF view demo 项目地址: https://gitcode.com/gh_mirrors/re/Revit2GLTF 在数字化建筑设计流程中&#xff0c;BIM模型的高效协作与展示一直是行业痛点。设计团队常常面临这样的…...

离散数学实战:用Python解决图论问题(附完整代码示例)

离散数学实战&#xff1a;用Python解决图论问题&#xff08;附完整代码示例&#xff09; 当你在社交软件上查看"可能认识的人"推荐&#xff0c;或是用导航软件规划最短路线时&#xff0c;背后都在运行图论算法。作为离散数学中最具工程价值的领域&#xff0c;图论将现…...

AB Download Manager终极指南:告别杂乱下载,3步打造高效下载工作流

AB Download Manager终极指南&#xff1a;告别杂乱下载&#xff0c;3步打造高效下载工作流 【免费下载链接】ab-download-manager A Download Manager that speeds up your downloads 项目地址: https://gitcode.com/GitHub_Trending/ab/ab-download-manager 还在为下载…...

2025+数据集成新范式:webSpoon企业级部署实战指南

2025数据集成新范式&#xff1a;webSpoon企业级部署实战指南 【免费下载链接】pentaho-kettle webSpoon is a web-based graphical designer for Pentaho Data Integration with the same look & feel as Spoon 项目地址: https://gitcode.com/gh_mirrors/pen/pentaho-ke…...

QQ音乐加密音频终极解密指南:qmcdump完整教程与实战应用

QQ音乐加密音频终极解密指南&#xff1a;qmcdump完整教程与实战应用 【免费下载链接】qmcdump 一个简单的QQ音乐解码&#xff08;qmcflac/qmc0/qmc3 转 flac/mp3&#xff09;&#xff0c;仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是…...

3分钟搞定!Windows 11 LTSC 24H2微软商店终极安装指南

3分钟搞定&#xff01;Windows 11 LTSC 24H2微软商店终极安装指南 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否正在使用Windows 11 24H2 LTS…...

轻量级二维码工具性能优化:从加载到部署的全流程实践

轻量级二维码工具性能优化&#xff1a;从加载到部署的全流程实践 【免费下载链接】qrcodejs Cross-browser QRCode generator for javascript 项目地址: https://gitcode.com/gh_mirrors/qr/qrcodejs 二维码生成功能已成为现代Web应用的常见需求&#xff0c;但传统实现方…...

告别DDA!用Python手撸Bresenham画线算法,从原理到实现(附完整源码)

告别DDA&#xff01;用Python手撸Bresenham画线算法&#xff0c;从原理到实现&#xff08;附完整源码&#xff09; 在计算机图形学领域&#xff0c;直线绘制是最基础却至关重要的操作。当你需要开发一个2D图形引擎、像素画工具或是任何需要精确控制像素显示的应用程序时&#x…...

RWKV7-1.5B-g1a实操手册:基于CSDN GPU平台的完整调用流程

RWKV7-1.5B-g1a实操手册&#xff1a;基于CSDN GPU平台的完整调用流程 1. 模型简介 rwkv7-1.5B-g1a 是基于新一代 RWKV-7 架构的多语言文本生成模型&#xff0c;特别适合中文场景下的轻量级应用。这个1.5B参数的版本在保持较高生成质量的同时&#xff0c;对硬件要求非常友好&am…...