您的位置:首页 > 教育 > 培训 > 设计工作室网站推荐_网站建设服务哪家便宜_网店推广软文范例_怎么做一个网站

设计工作室网站推荐_网站建设服务哪家便宜_网店推广软文范例_怎么做一个网站

2024/10/5 21:19:51 来源:https://blog.csdn.net/wenxingchen/article/details/142585643  浏览:    关键词:设计工作室网站推荐_网站建设服务哪家便宜_网店推广软文范例_怎么做一个网站
设计工作室网站推荐_网站建设服务哪家便宜_网店推广软文范例_怎么做一个网站

 

目录

一、常见错误 

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

错误二、在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()

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com