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" <[email protected]> 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 <[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
