У меня есть простое приложение, которое запускает процесс, который может длиться несколько минут до завершения. Я пытаюсь указать пользователю, что он обрабатывает запрос, например, изменив курсор на песочные часы.
Но я не могу заставить его работать правильно. Все мои попытки либо привели к ошибке, либо не дали никакого эффекта. И я, кажется, неправильно вызываю форму курсора, поскольку PyQt4.Qt.WaitCursor
возвращает ошибку, что модуль не содержит ее.
Как правильно указать пользователю, что процесс запущен?
Лучший способ добавить курсор согласно мне был бы при помощи декораторов. Таким образом, можно выполнить любую функцию, просто добавив курсор к той функции как декоратор
import decorator
@decorator.decorator
def showWaitCursor(func, *args, **kwargs):
QtWidgets.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor)
try:
return func(*args, **kwargs)
finally:
QtWidgets.QApplication.restoreOverrideCursor()
@showWaitCursor
def youFunc():
# Long process