我正在使用这里找到的QtWaitingSpinner:https://github.com/snowwlex/QtWaitingSpinner。您可以创建并启动这样的微调器:spinner = QtWaitingSpinner(self); spinner.start()
。不幸的是,当我试图从GUI发出POST请求时,spinner会停止,直到返回响应为止。因此,我根本看不到微调器,或者如果我过早启动微调器,它会在等待响应时停止旋转。我想我将不得不使用一些异步方法,比如QThread或asyncio,但是不清楚解决这个问题的最佳方法是什么。如果有人能告诉我最好的处理方法,我将不胜感激。以下是我所做工作的简化版本:
class Obj(QDialog):
# some button calls this function when pressed
def submit(self):
#start spinner
spinner = QtWaitingSpinner(self)
spinner.start()
# post some data to some url, spinner should spin
r = requests.post('some_url.com', json=some_data)
# stop spinner
spinner.stop()
您的问题是}。在
requests
阻塞了Qt循环,因此QTimer
之类的元素无法工作。一种解决方案是在另一个线程上运行该任务,一种简单的方法是使用QRunnable
和{完整的例子可以在下面的link
相关问题 更多 >
编程相关推荐