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

QT中的QTimer.singleShot()函数

1. 作用

QTimer.singleShot()Qt 定时器类 QTimer 提供的一个静态函数,用来在指定的时间(毫秒)后 执行一次 某个函数/槽函数。

它的典型应用场景就是:

(1)延迟执行(避免某些初始化未完成就调用)

(2)异步操作(让函数排到事件循环中稍后执行)

()定时触发(比如 2000 毫秒后执行某个任务)

2. 函数原型

在 PyQt5 里,常见的两种用法是:

QTimer.singleShot(msec: int, receiver: QObject, member: SLOT)
QTimer.singleShot(msec: int, callable)

参数解释

  • msec:延时的毫秒数(整数,1000 = 1 秒)。

  • receiver / member:Qt 的信号槽写法,触发时调用某个对象的槽函数。

  • callable:Python 风格,传入一个可调用对象(函数、lambda 等)。

3. 用法示例

最常见的 Python 写法

from PyQt5.QtWidgets import QApplication, QPushButton
from PyQt5.QtCore import QTimerapp = QApplication([])button = QPushButton("Click me")# 点击按钮时输出
button.clicked.connect(lambda: print("按钮被点击了!"))button.show()# 2 秒后自动点击按钮
QTimer.singleShot(2000, button.click)app.exec_()

输出:

按钮被点击了!

当执行函数后,两秒后会自行点击关联的按钮,输出关联的按钮结果。

4. 特点

(1)一次性定时器:
只会执行一次,如果需要循环执行,要用 QTimer.start()

(2)依赖事件循环
必须有 QApplication.exec_() 在运行,否则不会触发。

(3)延时不一定精准
Qt 不是实时系统,1000 毫秒意味着“大约 1 秒后”,但可能受系统调度影响略有延迟。

5. 典型应用

  • UI 初始化后再修改界面(避免刚设置好的属性被覆盖)

QTimer.singleShot(100, lambda: plot_item.setRange(yRange=(0, 100)))

延迟关闭提示窗口

QTimer.singleShot(3000, msg_box.close)

异步操作,避免阻塞

def long_task():print("任务完成")print("准备任务")
QTimer.singleShot(0, long_task)  # 把任务丢给事件循环

6.总结

QTimer.singleShot() 就是 Qt 的 延迟执行一次函数 工具,非常适合处理 UI 自动缩放覆盖、初始化未完成、异步调度 这些场景。

http://www.dtcms.com/a/427289.html

相关文章:

  • TCP/IP 四层模型协作流程详解
  • windows显示驱动开发-调试间接显示驱动程序(一)
  • MySQL MVCC:通过 ReadView与 undolog版本链 分析读提交RC和可重复读RR的原理
  • STM32-USB_OTG_FS 与 USB_OTG_HS 的核心区别
  • 输入框内容粘贴时 nbsp; 字符净化问题
  • 网站建设要做哪些黑龙江牡丹江双鸭山伊春推广
  • 软考 系统架构设计师系列知识点之杂项集萃(163)
  • matlab cell 数据转换及记录
  • 涡度通量数据风浪区分析:涡度通量Footprint时空动态分析等析等
  • 【软考网工笔记】第五章(12)【补充】IP子网划分VLSM CIDR
  • 探秘最长连号序列:线性扫描算法与竞赛实战(洛谷P1420)
  • 网站建设计划方案网站内容管理系统(cms)
  • 做项目搭建网站 构建数据库asp影楼网站数据库用什么软件
  • 网站建立的优点如何确保网站安全
  • Ubuntu 如何安装.NET6 runtime
  • 前端-JS基础-day4
  • shell文件
  • 本地渗透测试靶机环境搭建指南(VMware + VirtualBox)
  • Anthropic新模型Claude Sonnet 4.5刷新基准,微美全息AI模型与算力基建赋能千行百业!
  • 云手机服务器多开需要注意哪些
  • mysql和Oracle用户设置双密码配置方法
  • 深圳中企动力网站翻新后seo怎么做
  • 沈阳网站改版网站免费下载app
  • 惠州建网站服务wordpress产品
  • 奉化建设网站万网买的网站备案吗
  • 速通ACM省铜第十八天 赋源码(Neo‘s Escape)
  • 开源 C# 快速开发(十三)进程--管道通讯
  • 甲流防治的新思路:基于肠道菌群的调节策略
  • 深圳网站建设fantodops做电商网站流程
  • 阿里云个人备案可以做企业网站代理办公司注册大概多少钱