加个辅助函数 sync(),就可以 await pyqt 的 signal
async def sync(qtsignal):
event = asyncio.Event()
qtsignal.connect(event.set)
return await event.wait()
然后就可以这样写了:
class MyWindow(QWidget):
def __init__(self):
super(MyWindow, self).__init__()
self.ui = Ui_MyWindow()
self.ui.setupUi(self)
asyncio.create_task(self.start)
async def start(self):
while True:
await sync(self.ok_button.clicked)
print("clicked")
【 在 fanci (大葡萄) 的大作中提到: 】
: 如果是像C#那般的async/await是最佳的……不知道Qt GUI里的异步/协程范式是怎样的?我是想用Qt+Python做个小GUI。
: - 来自 水木社区APP v3.5.3
--
FROM 112.47.122.*