我正在使用此处找到的QtWaitingSpinner:https://github.com/snowwlex/QtWaitingSpinner。您可以像这样创建和启动微调器:spinner = QtWaitingSpinner(self); spinner.start()
。不幸的是,当我尝试从我的GUI发出POST请求时,微调器停止,直到返回响应。因此,我根本看不到旋转器,或者如果我过早地启动旋转器,它会在等待响应时停止旋转。我想我将不得不使用某种异步方法,如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()
答案 0 :(得分:1)
您Array
(
[0] => 510
[1] => 984
[2] => 1045
[3] => 2068
[4] => 1054
[5] => 673
)
的问题是阻止了Qt循环,因此像requests
这样的元素不起作用。一种解决方案是在另一个线程上运行该任务,一种简单的方法是使用QTimer
和QRunnable
。
QThreadPool
可以在以下link
中找到完整的示例