Вы не можете обновить GUI из другого потока, поэтому есть несколько опций, таких как сигналы, QEvent, QMetaObject :: invokeMethod () или QTimer :: singleShot (0, ...) с помощью functools.partial. Я буду использовать последние 2 метода:
- QMetaObject :: InvokeMethod ()
QtCore.QMetaObject.invokeMethod(
ui.QProgressBar, "setValue", QtCore.Qt.QueuedConnection, QtCore.Q_ARG(result)
)
- QTimer :: singleShot (0, ...) с functools.partial :
from functools import partial
# ...
wrapper = partial(ui.QProgressBar.setValue, result)
QtCore.QTimer.singleShot(0, wrapper)