[Qgis-developer] qgis crash using QThread in a plugin script

Sergio Vignali vignalisergio30 at gmail.com
Sat Sep 10 01:42:34 PDT 2016


Hi Akbar,
thank you for your answer, I'm abroad till Tuesday but I will test it asap
and let you know.
Best

Il 09/set/2016 05:04, "Akbar Gumbira" <akbargumbira at gmail.com> ha scritto:

> Hi Sergio,
>
> DId you fix already your problems? I am not sure if my answer is 100%
> correct (so I don't post it in stackexchange) as  I didnt try it, but by
> judging your code:
>
> If I click apply without entering anything in the QLineEdit the
>> QgsMessageBar appears correctly but if I close the QDialog and I do the
>> same the QgisMessageBar has two items (1 more, see picture)
>
>
> Plugins initiallization happened when starting QGIS. So the plugin is
> already instantiated (along with your dialog, message bar, etc). Restarting
> (that is closing and opening again) the dialog in your code doesn't destroy
> all the instances. That is why the message bar has the previous messages.
> You can just clear the message bar once user opens the dialog.
>
> If I insert a word in the QLineEdit after opening the plugin for the
>> second time, clicking on apply Qgis crashes.
>
>
> This is not necessarily related to the crash :p:
>
>    -
>
>    word = unicode(self.dlg.inputedit.text())
>
>
> But QString is stored in unicode, no need to recast it
>
> For the cause of the crash, I strongly believe this is the problem:
>
>     def add_item(self, item):
>         self.list.addItem(item)
>         return
>
> Can you try to remove return there? I think it's forcing the thread to go
> back to the main loop (plugin Run method)
>
> Cheers
>
>
>
> On Wed, Sep 7, 2016 at 1:57 PM, Sergio Vignali <vignalisergio30 at gmail.com>
> wrote:
>
>> I posted my problem in gis.stackexchange, (http://gis.stackexchange.com/
>> questions/209602/qgis-crash-using-qthread-in-a-plugin-script).
>> There you can find the full explanation of the problem and all the code I
>> used... It would be great to get some feedbacks!
>> Best
>> s.
>>
>> 2016-09-06 3:58 GMT+02:00 Akbar Gumbira <akbargumbira at gmail.com>:
>>
>>> It would be more helpful if you point to the code here. I had a problem
>>> with QThread (was initially inheriting QThread) but managed to fix the
>>> problem by creating workers and move the worker object to thread. This is a
>>> good article about multithreading in qgis https://snorfalorpagus.net/blo
>>> g/2013/12/07/multithreading-in-qgis-python-plugins/
>>>
>>> On Sep 5, 2016 23:01, "Sergio Vignali" <vignalisergio30 at gmail.com>
>>> wrote:
>>>
>>>> Dear all,
>>>>
>>>> I wrote a python script that aims to execute neighbourhood statistics
>>>> in raster layer. My script uses QThread to update a QList and a
>>>> QProgressBar and everithing works fine if I run the script from PyCharm,
>>>> the progressbar and the list are updated. The problem appears when I move
>>>> my script in a Qgis plugin, the UI appears correctly but clicking OK the
>>>> software crashes...
>>>> I am using qgis 2.14 in a linux machine, do you have any advice?
>>>>
>>>> All the best
>>>>
>>>>
>>>>
>>>> --
>>>> Sergio Vignali
>>>>
>>>>
>>>> _______________________________________________
>>>> Qgis-developer mailing list
>>>> Qgis-developer at lists.osgeo.org
>>>> List info: http://lists.osgeo.org/mailman/listinfo/qgis-developer
>>>> Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-developer
>>>>
>>>
>>
>>
>> --
>> Sergio Vignali
>>
>>
>
>
> --
>
> *-------------------*
> *Akbar Gumbira *
> *www.akbargumbira.com <http://www.akbargumbira.com>*
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20160910/5264b46a/attachment.html>


More information about the Qgis-developer mailing list