06. 定时器

一、定时器

  QML 有一个 Timer元素,它允许你在 QML 中设置定时器。这个元素是 Qt Quick 模块的一部分。我们可以通过定时器的 interval 属性设置 定时间隔,通过 running 属性设置 定时器默认是否运行,通过 repeat 属性设置 定时器是否可以重复触发。在设置完相关属性后,我们还可以通过 start() 开发 启动定时器,通过 stop() 方法 停止定时器

  我们可以在终端中使用 pip 安装 PySide6 模块。默认是从国外的主站上下载,因此,我们可能会遇到网络不好的情况导致下载失败。我们可以在 pip 指令后通过 -i 指定国内镜像源下载

pip install pyside6 -i https://mirrors.aliyun.com/pypi/simple

  国内常用的 pip 下载源列表:

  • 阿里云 https://mirrors.aliyun.com/pypi/simple
  • 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple
  • 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple
  • 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple

  我们新建一个 template.py 文件。

import sysfrom PySide6.QtWidgets import QApplication
from PySide6.QtQml import QQmlApplicationEngineif __name__ == "__main__":app = QApplication(sys.argv)                                                # 1.创建一个QApplication类的实例engine = QQmlApplicationEngine()                                            # 2.创建QML引擎对象engine.load("template.qml")                                                 # 3.加载QML文件sys.exit(app.exec())                                                        # 4.进入程序的主循环并通过exit()函数确保主循环安全结束

  我们新建一个 template.qml 文件。

import QtQuick.Window
import QtQuick.Controls// Window控件表示一个顶级窗口
// 在QML中,元素是通过大括号{}内的属性来配置的。
Window {id: windowIdwidth: 800                                                                  // 窗口的宽度height: 600                                                                 // 窗口的高度visible: true                                                               // 显示窗口color: "lightgray"property int count: 0                                                       // 定义一个属性,用于计数// 在矩形内部定义一个文本(Text)元素。这意味着文本将作为矩形的一个子元素,通常会被绘制在矩形内部。Text {anchors.centerIn: parent                                                // 将中心的锚点位到父元素的中心font.pointSize: 32                                                      // 设置文本的字体大小text: "Value:" + windowId.count                                        // 设置文本元素的内容}// 定义一个按钮Button{id: startButtonId                                                       // 定义一个标识width: 200                                                              // 按钮的宽度height: 50                                                              // 按钮的高度// 使用锚点(anchors)系统来定位文本元素anchors.left: parent.left                                               // 将左边的锚点定位到父元素的左边anchors.leftMargin: 20                                                  // 设置左侧边距为20像素anchors.bottom: parent.bottom                                           // 将底部的锚点定位到父元素的底部anchors.bottomMargin: 20                                                // 设置底部边距为20像素text: "开始加载"                                                         // 按钮的文本// 按键点击时触发onClicked: {if (startButtonId.text == "开始加载") {windowId.count = 0                                              // 重置计数 timerId.start()                                                 // 开启定时器startButtonId.text = "暂停加载"} else if (startButtonId.text == "暂停加载") {timerId.stop()startButtonId.text = "继续加载"} else if (startButtonId.text == "继续加载") {timerId.start()startButtonId.text = "暂停加载"}}}Button{width: 200                                                              // 按钮的宽度height: 50                                                              // 按钮的高度anchors.right: parent.right                                             // 将右边的锚点定位到父元素的右边anchors.rightMargin: 20                                                 // 设置右侧边距为20像素anchors.bottom: parent.bottom                                           // 将底部的锚点定位到父元素的底部anchors.bottomMargin: 20                                                // 设置底部边距为20像素text: "重置"                                                            // 按钮的文本// 按键点击时触发onClicked: {windowId.count = 0                                                  // 重置计数}}// 定义一个定时器Timer{id: timerId                                                             // 定时器idinterval: 100                                                           // 定义定时器间隔running: false                                                          // 定时器默认不运行repeat: true                                                            // 定时器是否可以重复触发// 当定时器触发时执行onTriggered: {windowId.count = windowId.count + 1                                 // 计算新的计数值if (windowId.count >= 100) {timerId.stop()                                                  // 如果进度值超过最大值,停止定时器startButtonId.text = "开始加载"                                  // 重置开始按钮的文本}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高端集团网站建设公司铭万做的网站怎么样

11.盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾…

怎么自己建立网站站长之家seo

前言 Gitee 是一个中国的开源代码托管平台,类似于 GitHub,旨在为开发者提供一个高效、稳定、安全的代码管理和协作开发环境。Gitee 支持 Git 协议,可以托管 Git 仓库,进行版本控制、代码协作、项目管理等操作。 1. Gitee 的主要…

职业学院网站建设网站建设需要哪些资质

这是渲染的数据 这是生成的pdf文件,直接可以打印 需要安装和npm依赖和引入封装的pdf.js文件 npm install --save html2canvas // 页面转图片 npm install jspdf --save // 图片转pdfpdf.js文件 import html2canvas from "html2canvas"; import jsPDF …

没人做网站了吗重庆建设网站哪家专业

ArcGIS软件可以很方便的直接实现度分秒转度、度转度分秒(度分秒→度、度→度分秒)。 文章目录 一、转换预览二、工具介绍三、案例解析一、转换预览 借助ArcGIS快速实现度分秒与度及其他格式的坐标转换,例如:度分秒→度、度→度分秒。 1. 度→度分秒 2. 度分秒→度 转换后…

硬件-电容学习DAY23——电容设计实战指南:从选型到高频应用 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

NOIP之前的复健记录

写一些做题记录,题解和随机话。 这回真是高一零基础学OI/文化课了。CF547B考虑每一个数对答案的贡献。 自然是当这个数 \(a_i\)是所选的区间最小值时对答案有贡献,所以我们找到左边第一个比 \(a_i\) 大的数 \(a_l\) …

支付网站开发建设费用怎么入账网站建设设计服务公司

了解细胞对基因扰动的反应是许多生物医学应用的核心,从识别癌症中涉及的基因相互作用到开发再生医学方法。然而,可能的多基因扰动数量的组合爆炸严重限制了实验验证。在这里,作者提出了图增强的基因激活和抑制模拟器(GEARS&#x…

Linux 命令行安装达梦数据库

达梦官方不提供 docker 镜像了,由于要开发国产化项目,因此只能暂时在 Linux 服务器上直接安装。如果 Linux 操作系统带有图形化界面的话,安装起来很简单,参考官网即可,这里不再赘述。有的客户现场提供的 Linux 服…

Google开源Tunix:JAX生态的LLM微调方案来了

AX生态这两年在LLM训练这块追赶得挺快。PyTorch虽然还是主流但JAX在并行计算、TPU加速和API组合性上确实有些独特的优势。Google今天放出了Tunix这个库,专门做LLM的后训练——微调、强化学习、知识蒸馏这些都能搞。 T…

域名和空间都有了怎么做网站三门峡网站制作

原标题:鸿蒙OS 2.0系统正式发布!余承东:明年华为系手机将会搭载由于众所周知的原因,华为手机这两年过的很艰难,尤其是今年力度大了后,华为手机接下来可能面临无芯片可用的严重情况。而除了一些硬件外&#…

看上去高端的网站兰州建设局网站

全文共2485字,预计学习时长12分钟图源:unsplash数据科学的生命周期主要包括数据收集、数据清理、探索性数据分析、模型构建和模型部署。作为数据科学家或机器学习工程师,能够部署数据科学项目非常重要,这有助于完成数据科学生命周…

网站服务方案2022昆明今天刚刚发生的新闻

常用类 目录 1. QString 字符串类(掌握) 2. 容器类(掌握) 2.1 顺序容器QList 2.2 关联容器QMap 3. 几种Qt数据类型(熟悉) 3.1 跨平台数据类型 3.2 QVariant 统一数据类型 3.3 QStringList 字符串列表 4. QD…

实用指南:如何优化 C# MVC 应用程序的性能

实用指南:如何优化 C# MVC 应用程序的性能2025-10-04 20:30 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: blo…

软件工程的第一次作业

软件工程的第一次作业这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546这个作…

实用指南:Matlab通过GUI实现点云的快速全局配准(FGR)

实用指南:Matlab通过GUI实现点云的快速全局配准(FGR)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&qu…

Eclipse 中文语言包安装教程:一键将界面切换为中文 - 教程

Eclipse 中文语言包安装教程:一键将界面切换为中文 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…

『OI 回忆录』停课有感

原来已经快 2 年了吗。怀恋啊。时值 11.17 晚 20:11。 停课结束了。写一篇文章。\(\text{Schedule}\)开心是一天,不开心也是一天。11.11 第一次和高中联考,获得了 125 pts 的好成绩。11.11 并且得知自己去不了 NOIP,…

『回忆录』初三第三学月

呜呜呜停课 半期 我计划着每次月考完都写一篇,当做纪念。 感觉真的太快了,一眨眼就是一个月,记不起发生了什么…… 可能写得有些乱,敬请谅解。经历 上中旬的时候听说基本全员去 NOIP,于是跟着一起停课。 关于停课…

完整教程:MySQL 5.7 主主复制 + Keepalived 高可用配置实例

完整教程:MySQL 5.7 主主复制 + Keepalived 高可用配置实例pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Conso…

题解:P14074 [GESP202509 五级] 有趣的数字和

感觉这题真的不止黄(可能是我太菜了<(_ _)> 这道题会让我们联想到数位dp(其实没有多少关系(@_@) 这里还是借用的老师的思路 计算l-r之间有趣数字的个数,也就是0-r之间有趣数字的个数减去0-(l-1)之间有…