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

QML定时器Timer和线程任务WorkerScript

定时器 Timer

  • 属性
    • interval: 事件间隔毫秒
    • repeat: 多次执行,默认只执行一次
    • running: 定时器启动
    • triggeredOnStart: 定时器启动时立刻触发一次事件
  • 信号
    • triggered(): 定时时间到,触发此信号
  • 方法
    • restart(): 重启定时器
    • start(): 启动定时器
    • stop(): 停止定时器
  • 定时器使用示例
    •   import QtQuick 2.12import QtQuick.Window 2.12Window {visible: truewidth: 640height: 480title: qsTr("Hello World")Text{id: text1x: parent.width - 220y: parent.height - 30text:"time"MouseArea{anchors.fill: parentonClicked: {timer1.running = !timer1.running}}}Timer{id: timer1// 间隔事件-毫秒interval: 1000// 定时器启动后立刻触发一次triggeredOnStart: true// 触发多次repeat: true// 定时器启动running: true// 接收触发信号onTriggered: {text1.text = Date().toString()}}}

线程任务 WorkerScript

  • WorkerScript是QML提供的一个轻量级线程机制,用于在后台线程中执行JavaScript代码。
  • 它适合简单的任务,但不适用于复杂的多线程需求。
  • 属性
    • source: 指定多线程访问的脚本
  • 信号
    • message: 线程处理脚本中sendMessage发出消息后,此信号触发
  • 方法
    • sendMessage: 发送消息到另一个线程
  • 线程使用示例
    •   import QtQuick 2.12import QtQuick.Window 2.12Window {visible: truewidth: 640height: 480title: qsTr("Hello World")Rectangle{width: 280height: 200color: "#AAAAAA"Text{id: mytexttext: "click"}WorkerScript{id: mywork// 多线程访问的脚本source: "myscript.js"// 接收线程处理后的数据onMessage: (msg)=>{print("onMessage: " + msg.reply)}}MouseArea{anchors.fill: parentonClicked: {// 给线程发送数据mywork.sendMessage({'name':'testname',"datas":[3, 5, 7, 9]})}}}}
      
  • 线程脚本 myscript.js
    •   // 接收主线程发送的数据WorkerScript.onMessage = function(msg){var vremsg = msg.name + ": "for(i = 0; i < msg.datas.length; i++){vremsg += msg.datas[i] + "|"}print(vremsg)WorkerScript.sendMessage({'reply': vremsg})}
      
http://www.xdnf.cn/news/577585.html

相关文章:

  • 大模型评测与可解释性
  • Day 27 训练
  • Linux中的文件介绍
  • 通过美图秀秀将多张图片合并
  • 【UEFI实战】BIOS编译过程中报错“无法解析的外部符号memcpy”
  • 七: NumPy的使用
  • vue+srpingboot实现多文件导出
  • Unity中GPU Instancing使用整理
  • Python训练Day30
  • 第3周作业-1层隐藏层的神经网络分类二维数据
  • MQTT报文介绍
  • Linux内存分页管理详解
  • Jsoup解析商品信息具体怎么写?
  • 阿里发布扩散模型Wan VACE,全面支持生图、生视频、图像编辑,适配低显存~
  • FreeCAD傻瓜教程-外螺纹的绘制,利用两个实体进行布尔运算来实现
  • 《P1433 吃奶酪》
  • MCU开发学习记录19* - CAN学习与实践(HAL库) - 定时传输、触发传输和请求传输(轮询与中断实现) -STM32CubeMX
  • Python 代码缩进与结构化编程:从基础到风格规范
  • Robotaxi新消息密集释放,量产元年来临谁在领跑?
  • [Java恶补day2] 49. 字母异位词分组
  • 【SW】从3D模型导出dxf图纸
  • 【算法专题十五】BFS解决最短路问题
  • 04_Prometheus监控docker容器(4)
  • 智慧社区新防线:华奥系AI技术如何让夏季安防“零隐患”
  • 如何在JavaScript中将数值转换为字符串并赋值给数组——以RuoYi-Vue项目为例
  • Redis Cluster动态扩容:架构原理与核心机制解析
  • 航电系统之航点跟踪系统篇
  • C++(27): 标准库 <iterator>
  • 逆向音乐APP:Python爬虫获取音乐榜单 (1)
  • Podman(Pod Manager)简介