首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Qt Pyside2和异步等待语法?

使用Qt Pyside2和异步等待语法?
EN

Stack Overflow用户
提问于 2019-09-21 14:55:48
回答 2查看 2.7K关注 0票数 3

如何在src的主循环中等待此函数(Pyside2):

代码语言:javascript
复制
async def do_request(value): #asyncqt maybe possible
    #print("do request")
    await asyncio.sleep(value)
    #print("request finished")
    return value

async def eventFilter(self, source, event): #impossible, needs pyside2 rewrite
     ... 

我非常不愿意使用任何非官方的东西,所以pyside2:我查看了pyside2中有Q线程示例的例子,但是没有等待异步的例子。我的库使用异步,那么如何在pyside2中等待呢?

这是一个严重的问题:https://github.com/harvimt/quamash/issues/104不支持pyside2,https://github.com/gmarull/asyncqt也不被维护。解决办法是什么?

请您如何整合这样简单的电话。我担心没有维护的repos会中断/错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-08 13:55:26

看完https://www.youtube.com/watch?v=ol5IuJyw-Tg之后,使用内置的qthread qrunnable qthread不阻塞主gui线程就可以了。

有关示例,请参阅https://code.qt.io/cgit/pyside/pyside-setup.git/tree/examples/corelib并浏览源代码(its for pyside2)

票数 1
EN

Stack Overflow用户

发布于 2019-09-22 15:28:44

PyQt非常受欢迎。尽管有些人可能因为许可证问题而不想要它。无论您选择PyQt还是PySide,QTimer都有一些非常好的功能。特别是,您可以使用singleShot()方法在特定延迟时运行代码。

代码语言:javascript
复制
from PySide2.QtCore import QTimer

def myfunc():
    # do your stuff here
    pass

def do_request(self, value):
    # call static function singleShot
    QTimer.singleShot( delay_msec, myfunc)

您还可以使用start() QTimer在普通interval上运行任务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58041425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档