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 <[email protected]>
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 <[email protected]>:
>
>> 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" <[email protected]> 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
>>> [email protected]
>>> 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>*
_______________________________________________
Qgis-developer mailing list
[email protected]
List info: http://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-developer