[Qgis-user] Access to iface in processing alg
Matthias Kuhn
matthias at opengis.ch
Mon Jul 9 12:25:32 PDT 2018
Hi,
Processing algorithms run often in background threads. That's likely why
you are getting a crash, it's not safe to call UI functions from
background threads.
It's possible to
- run the processing algorithm with a custom QgsProcessingFeedback
implementation
- make sure that pushInfo etc. is first sent to the main thread as a
signal and executed there
- return the QgsProcessingAlgorithm.FlagNoThreading from your
algorithms flags() method
- or consider sticking to the way that processing has been designed for
Regards
Matthias
On 07/09/2018 02:14 PM, Jean-Baptiste Desbas wrote:
>
> Hi,
>
> I just want to display a messageBar instead of displaying it un the
> processing output console (feedback.pushInfo) It's ni big deal but i
> was just confused.
>
> Do toi have any tips of use case of the differents pushInfo,
> pushConsoleInfo, etc. ?
>
> Thanks
>
> Le lun. 9 juil. 2018 19:18, Matthias Kuhn <matthias at opengis.ch
> <mailto:matthias at opengis.ch>> a écrit :
>
> Hi,
>
> can you elaborate why you need access to iface? In most cases
> there are different ways that help you keep the algorithm modular
> and portable by specifying required components via parameters or
> acquiring them from the processing context.
>
> Best regards
>
> Matthias
>
>
> On 07/09/2018 09:58 AM, Jean-Baptiste Desbas wrote:
>> Hello,
>>
>> What is the proper way to access iface in a processing alg ?
>>
>> I try "from qgis.utils import iface" but it crash when i make an
>> iface.pushWarning.
>>
>> Thanks,
>>
>> Here is the stack trace :
>>
>>
>>
>>
>> *Crash ID*: 59968a8cbec4e3d98bbe532ada707149cd7f9eee
>>
>>
>> *Stack Trace*
>> <pre>
>> QgsCustomization::preNotify :
>> QObject::event :
>> QApplicationPrivate::notify_helper :
>> QApplication::notify :
>> QgsApplication::notify :
>> QCoreApplication::notifyInternal2 :
>> QCoreApplicationPrivate::sendPostedEvents :
>> qt_plugin_query_metadata :
>> QEventDispatcherWin32::processEvents :
>> CallWindowProcW :
>> DispatchMessageW :
>> QEventDispatcherWin32::processEvents :
>> qt_plugin_query_metadata :
>> QEventLoop::exec :
>> QDialog::exec :
>> PyCFunction_FastCallDict :
>> PyObject_GenericGetAttr :
>> PyEval_EvalFrameDefault :
>> PyFunction_FastCallDict :
>> PyObject_CallFunctionObjArgs :
>> PyObject_Call :
>> PyInit_QtCore :
>> PyInit_QtCore :
>> PyInit_QtCore :
>> PyInit_QtCore :
>> PyInit_QtCore :
>> QMetaObject::activate :
>> QAbstractItemView::doubleClicked :
>> QTreeView::mouseDoubleClickEvent :
>> QWidget::event :
>> QFrame::event :
>> QAbstractItemView::viewportEvent :
>> QCoreApplicationPrivate::sendThroughObjectEventFilters :
>> QApplicationPrivate::notify_helper :
>> QApplication::notify :
>> QgsApplication::notify :
>> QCoreApplication::notifyInternal2 :
>> QApplicationPrivate::sendMouseEvent :
>> QSizePolicy::QSizePolicy :
>> QSizePolicy::QSizePolicy :
>> QApplicationPrivate::notify_helper :
>> QApplication::notify :
>> QgsApplication::notify :
>> QCoreApplication::notifyInternal2 :
>> QGuiApplicationPrivate::processMouseEvent :
>> QWindowSystemInterface::sendWindowSystemEvents :
>> QEventDispatcherWin32::processEvents :
>> CallWindowProcW :
>> DispatchMessageW :
>> QEventDispatcherWin32::processEvents :
>> qt_plugin_query_metadata :
>> QEventLoop::exec :
>> QCoreApplication::exec :
>> main :
>> BaseThreadInitThunk :
>> RtlUserThreadStart :
>> </pre>
>>
>>
>> *QGIS Info*
>> QGIS Version: 3.2.0-Bonn
>> QGIS code revision: commit:bc43194061
>> Compiled against Qt: 5.9.2
>> Running against Qt: 5.9.2
>> Compiled against GDAL: 2.2.4
>> Running against GDAL: 2.2.4
>>
>>
>>
>> *System Info*
>> CPU Type: x86_64
>> Kernel Type: winnt
>> Kernel Version: 10.0.17134
>>
>>
>>
>> _______________________________________________
>> Qgis-user mailing list
>> Qgis-user at lists.osgeo.org <mailto:Qgis-user at lists.osgeo.org>
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
>
> --
> Matthias Kuhn
> matthias at opengis.ch <mailto:matthias at opengis.ch>
> +41 (0)76 435 67 63 <tel:+41764356763>
> OPENGIS.ch Logo <http://www.opengis.ch>
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org <mailto:Qgis-user at lists.osgeo.org>
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
>
>
>
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
--
Matthias Kuhn
matthias at opengis.ch <mailto:matthias at opengis.ch>
+41 (0)76 435 67 63 <tel:+41764356763>
OPENGIS.ch Logo <http://www.opengis.ch>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20180709/c69a0d05/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 6671 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20180709/c69a0d05/attachment.png>
More information about the Qgis-user
mailing list