PyQt5结合Asyncio异步
今天尝试了下 quamash 框架,该框架是一个 PyQt 的异步事件循环封装库,使用 Python3+ 的 asyncio 这个异步库。在看了该项目的内容后发现只有一个简单的进度条例子,故尝试用其来下载网络图片并显示。
# 安装依赖
pip install quamash
pip install aiohttp
Python3.5+ 和 PyQt5
这里使用 aiohttp 是因为它基于 asyncio 封装的网络操作库,常见的 get 、 post 等方法,不过它只支持 Python3.5 及以上的版本,主要是它使用了 async def 这样的语法。
# 说明
在创建 QApplication 后随即设置替换事件循环 loop
app = QApplication(sys.argv)
loop = QEventLoop(app)
asyncio.set_event_loop(loop)
w = Window()
通过 asyncio.ensure_future(func(), loop=loop) 来执行某个异步函数
# 流程
Wi ...