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

pyside6与协程

 

目录

一、常见错误 

错误一、使用协程函数作为槽函数。

错误二、在Qt循环中创建新的loop

二、解决方法: 

①安装库qasync

②修改Qt入口

③异步槽函数

④异步函数

⑤整体示例 


一、常见错误 

错误一、使用协程函数作为槽函数。

这样是肯定是不行,协程函数一定要跑在loop中,这里没有loop直接跑肯定会失败。

错误二、在Qt循环中创建新的loop

主线程通常已经被 Qt 的事件循环占用,因此不应该再创建新的异步事件循环。

 

二、解决方法: 

Qt 和 asyncio 的事件循环可以共存,但需要一些额外的设置。你可以使用 qasync 库来简化这个过程。 

①安装库qasync
pip install qasync
②修改Qt入口

异步槽函数
@asyncSlot()

异步函数
asyncio.ensure_future()

 

⑤整体示例 
import sys
import asyncio
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton
from qasync import QEventLoop, asyncSlotclass MyWindow(QWidget):def __init__(self, parent=None):super(MyWindow, self).__init__(parent)# 设置垂直布局self.setLayout(QVBoxLayout())# 创建组件self.button = QPushButton('点击')# 信号连接槽函数self.button.clicked.connect(self.btn_event)# 加入布局self.layout().addWidget(self.button)# 启动异步初始化任务asyncio.ensure_future(self.init_ui())@asyncSlot()async def btn_event(self):print(123)async def init_ui(self):print(456)if __name__ == '__main__':# 创建主循环app = QApplication(sys.argv)# 创建异步事件循环loop = QEventLoop(app)asyncio.set_event_loop(loop)# 创建窗口myWindow = MyWindow()# 显示窗口myWindow.show()# 运行事件循环loop.run_forever()

相关文章:

pyside6与协程

目录 一、常见错误 错误一、使用协程函数作为槽函数。 错误二、在Qt循环中创建新的loop 二、解决方法: ①安装库qasync ②修改Qt入口 ③异步槽函数 ④异步函数 ⑤整体示例 一、常见错误 错误一、使用协程函数作为槽函数。 这样是肯定是不行&#xff…...

手机如何五开玩梦幻西游端游?用GameViewer远程手机免费畅玩梦幻西游

用手机就能免费玩梦幻西游端游,还可以随时查看挂机进度! 想要实现这一点,就用网易GameViewer远程,而且不光手机可以玩梦幻西游端游,平板也能免费玩,并为你实现五开玩梦幻西游端游。 那么,通过Ga…...

【笔记】X射线物理基础

一、X射线衍射分析简史 1895年X射线发现 1896 年 2 月对骨折的观察:G.和 E. Frost是第一个使用 X 射线进行医疗用途 1897 年法国海关官员的行李扫描。 X射线衍射理论1 X射线衍射理论2 元素的特征X射线 X射线光电子的应用 电磁波的粒子属性 X射线层析成像法 X-ray…...

Vue3与Flask后端Demo

文章目录 准备工作Flask 后端设置Vue3 前端设置跨域问题测试 准备工作 安装开发环境 安装 Python(推荐 Python 3.8 或更高版本)。安装 Node.js(推荐 LTS 版本)。安装 PyCharm(用于 Flask 开发)和 VSCode&am…...

第一本RAG书籍《大模型RAG实战》出版!

随着ChatGPT的爆火,推动了新一轮的AI技术进步。但大模型自身存在幻觉、知识更新难等问题,阻碍了其直接进行落地应用。RAG(Retrieval-Augmented Generation)技术将LLM与文本信息检索相结合,解决了在一些场景下模型知识不…...

Pandas -----------------------基础知识(四)

自定义函数 Series 加载数据 import pandas as pd df pd.DataFrame({Age: [20, 25, 30, 35, 40]}) df # 目标: 让 Age 列 的每个元素 num1 num2 def add_nums(x,num1,num2):return x num1 num2 df[Age].apply(add_nums,num1 2,num2 3) 法二 df[Age].apply(lambda x ,num1…...

鼎阳加油-IOC关键技术问题的解决记

鼎阳SDS6204示波器EPICS IOC的搭建-CSDN博客 这款示波器在labview下工作的很好,以前搭建逐束团3D系统时连续几个月不间断的工作连接从没断过线,并做过速率测试,单通道时10Hz的波形更新速率都可以达到: 鼎阳SDS6204示波器波形读取…...

【HarmonyOS】TaskPool非阻塞UI

TaskPool方法不会阻塞UI,如果做上传图片的功能加载Loading记得使用TaskPool,Promise、Async/Await都会阻塞UI 【引言】 发现Promise可能会阻塞UI,尝试使用async或await,但发现它们仍然会导致阻塞。后来看到chaoxiaoshu回复的Tas…...

关于使用/bin/sh -c 用于Dockerfile的Entrypoint的问题

问题描述 相同的dockerfile,使用不同的基础镜像制作镜像1号进程不相同 ENTRYPOINT都是: /bin/sh -c pre-start.sh && myblockserver 的形式 就是执行多个命令命令,最后的一个命令是阻塞的 镜像1: 1号进程是 /bin/sh -c pre-start…...

JS---获取浏览器可视窗口的尺寸

innerHeight 和 innerWidth 这两个方法分别是用来获取浏览器窗口的宽度和高度&#xff08;包含滚动条的&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible&q…...

对抗攻击方法详解:梯度攻击、转移攻击与模型集成攻击

对抗攻击方法详解&#xff1a;梯度攻击、转移攻击与模型集成攻击 近年来&#xff0c;随着深度学习模型在各个领域取得惊人突破&#xff0c;对抗攻击&#xff08;Adversarial Attack&#xff09; 逐渐成为研究热点。对抗攻击旨在通过在输入数据上施加精心设计的微小扰动&#x…...

GPU并行效率问题——通过MPS提升GPU计算收益

GPU并行效率问题——通过MPS提升GPU计算收益_gpu mps-CSDN博客...

patch 命令:补丁的应用

一、命令简介 ​diff​ 和 patch​ 是传统的文件比较和应用差异的工具&#xff0c;而 git​ 是一个更现代、功能更全面的版本控制系统&#xff0c;它内置了 diff​ 和 patch​ 的功能&#xff0c;并且提供了更多用于代码管理和协作的高级特性。 diff, patch 和 git 之间的关系…...

仓颉编程语言4,遇到BUG求助

本来准备整仓颉链接Mysql数据库。参考&#xff1a;GitCode - 全球开发者的开源社区,开源代码托管平台 这种方式是拿mysql官方的dll&#xff0c;编译一下&#xff0c;然后再封装成仓颉数据库驱动。这种方式不够逼格&#xff0c;所以准备解析mysql网络协议&#xff0c;从0开始写…...

SpringIOCDI

1.IOC 1.1.IOC概述 IOC&#xff1a; Inversion Of Control&#xff0c;简称IOC&#xff0c;也被称为控制反转。对象的创建权由程序员主动创建转移到容器&#xff0c;由容器创建、管理对象&#xff0c;这种思想称为控制反转。这个容器称为IOC容器或Spring容器被IOC容器创建、管…...

单细胞Seruat和h5ad数据格式互换(R与python)方法学习和整理

SeruatV4数据转化为h5ad格式数据 1、导入(R) rm(list ls()) library(Seurat) library(qs) library(reticulate) library(hdf5r) library(sceasy) library(BiocParallel) register(MulticoreParam(workers 4, progressbar TRUE)) scRNA <- qread("sc_dataset.qs&q…...

分布式难题-三座大山NPC

文章目录 1. 三座大山 NPC 的概念2. NPC 细分理解2.1. Network Delay 网络延迟2.2. Process Pause 进程暂停2.3. Clock Drift 时钟漂移Is the Algorithm Asynchronous? 本文参考&#xff1a; RedLock红锁安全性争论&#xff08;上&#xff09; https://martin.kleppmann.com/…...

两个方法教你设置Excel密码,防止修改和复制Excel表格内容

EXCEL是一款功能强大的电子表格软件&#xff0c;广泛用于各个地方。然而&#xff0c;对于一些重要的表格文件需要通过设置密码来限制大就的修改和复制权限。因而&#xff0c;对于一个EXCEL表格&#xff0c;通过密码设置大家有访问表格的权限&#xff0c;但无法修改数据的权限。…...

Java解析Excel文件

目录 背景 技术选型 开源Java框架选型 1. Apache POI 2. EasyExcel 收费Java框架选型 1. Spire.XLS for java 2. Aspose 总结 背景 在低代码产品的研发过程中&#xff0c;为用户提供数据导入导出的能力时&#xff0c;无法避免的就是对EXCEL解析的能力&#xff0c;所以本篇通过介…...

Require:基于雪花算法完成一个局部随机,全局离散没有热点切唯一的数值Id生成器。

【雪花算法】雪花算法&#xff08;Snowflake Algorithm&#xff09;是Twitter开源的用于生成唯一ID的算法&#xff0c;它可以在分布式系统中生成唯一的64位长整数ID。这种ID生成方式既保证了趋势递增&#xff0c;又保证了在不同数据中心、不同机器上生成的ID的唯一性。 符号位&…...

libevent - Macro function

TAILQ_INIT /** Tail queue functions.* 尾队列的头结点初始化为空队列。*/ #define TAILQ_INIT(head) do { \(head)->tqh_first NULL; \(head)->tqh_last &(head)->tqh_first; \ } while (/*CONSTCOND*/0)TAILQ_INIT 宏是一个用于初始化尾队列头部…...

408算法题leetcode--第17天

101. 对称二叉树 101. 对称二叉树思路&#xff1a;递归&#xff0c;对称即两个子树的左边和右边分别一样&#xff1b;一个子树是左中右遍历&#xff0c;另一个是右中左遍历&#xff1b;写的时候可以分三步&#xff0c;确定函数参数以及返回类型&#xff0c;确定终止条件&#…...

机器人顶刊IEEE T-RO发布无人机动态环境高效表征成果:基于粒子的动态环境连续占有地图

摘要&#xff1a;本研究有效提高了动态环境中障碍物建模的精度和效率。NOKOV度量动作捕捉系统助力评估动态占用地图在速度估计方面的性能。 近日&#xff0c;上海交通大学、荷兰代尔夫特理工研究团队在机器人顶刊IEEE T-RO上发表题为Continuous Occupancy Mapping in Dynamic …...

spring-boot web + vue

依赖的软件 maven 1. 官网下载zip 文件&#xff0c;比如apache-maven-3.9.9-bin.zip 2. 解压到某个盘符&#xff0c;必须保证父亲目录的名字包含英文&#xff0c;数字&#xff0c;破折号&#xff08;-&#xff09; 3. 设置环境变量M2_HOME, 并将%M2_HOME%\bin添加到windown…...

HDFS分布式文件系统01-HDFS架构与SHELL操作

HDFS分布式文件系统 学习目标第一课时知识点1-文件系统的分类单机文件系统网络文件系统分布式文件系统 知识点2-HDFS架构知识点3-HDFS的特点知识点4-HDFS的文件读写流程知识点5-HDFS的健壮性 第二课时知识点1-HDFS的Shell介绍HDFS Shell的语法格式如下。HDFS Shell客户端命令中…...

Go语言流程控制

Go语言流程控制 1.IF-ELSE2.Switch-Caseswitch 语句Type Switch 3.select 语句4.循环语句 1.IF-ELSE Go 编程语言中 if 语句的语法如下&#xff1a; if 布尔表达式 {/* 在布尔表达式为 true 时执行 */ }例如&#xff1a; package mainimport "fmt"func main() {va…...

无人机在救灾方面的应用!

一、灾害监测与评估 实时监测与评估&#xff1a;无人机可以快速到达灾害现场&#xff0c;通过搭载的高清摄像头、红外热成像仪等设备&#xff0c;对灾区进行实时监测和灾情评估。根据捕捉到的受灾范围、火势大小、建筑物损坏情况等关键信息&#xff0c;为救援行动提供决策依据…...

面试知识点总结篇一

一、C语言和C有什么区别 C语言是面向过程&#xff0c;强调用函数将问题分解为多个子任务&#xff0c;按顺序逐步进行。数据和操作分开C则是面向对象&#xff0c;面向对象是一种基于对象和类的编程范式&#xff0c;关注如何利用对象来抽象和模拟现实世界的实体。因此引入了类&a…...

【计算机网络 - 基础问题】每日 3 题(二十五)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…...

【第十八章:Sentosa_DSML社区版-机器学习之协同过滤】

【第十八章&#xff1a;Sentosa_DSML社区版-机器学习之协同过滤】 1.算子介绍 协同过滤是推荐系统中常用的一种方法。该算法旨在填补用户-产品关联矩阵中缺少的项。在算法中&#xff0c;用户和产品都是通过一组少量的潜在因素描述&#xff0c;这些潜在因素可以用于预测用户-产…...