[PySide] sending data from urllib2.urlopen().read() via signal corrupts in receiver
Frank Rueter | OHUfx
frank at ohufx.com
Mon Oct 23 04:12:08 CEST 2017
I am just sending a signal from a worker thread to the main thread. But
since QPixmap can't be passed betwen threads I thought QImage can't either.
Great link, thank you! For my next task I need to turn a loop that
spawns various QProcesses into a queu to control the max number of
concurrent processes. I am hoping to just use QRunnable to launch a
QProcess and control the max number of threads via the global
QThreadPool(). But will check that link if this approach is the right now.
Cheers,
frank
On 10/23/2017 01:50 PM, Renaud Talon wrote:
>
> If you’re talking about a QRunnable receiving data from another
> QRunnable you are correct. QRunnable can’t receive data through
> signals. I learned that the hard way recently.
>
> You have to use QThread or Qt Concurent if you want to do that, see
> table called “Comparison of Solutions” here :
>
> http://doc.qt.io/qt-5/threads-technologies.html
>
> *From: *Frank Rueter | OHUfx <mailto:frank at ohufx.com>
> *Sent: *Sunday, October 22, 2017 5:40 PM
> *To: *pyside at qt-project.org <mailto:pyside at qt-project.org>
> *Subject: *Re: [PySide] sending data from urllib2.urlopen().read() via
> signal corrupts in receiver
>
> Interesting. I assumed you can't do that between different threads to
> I never tried it.
>
> On 10/23/2017 05:36 AM, Erik Johansson wrote:
>
> Had the same problem.
>
> Solved it by creating a QImage and emitting that.
>
> Cheers,
>
> Erik
>
> On Sun, Oct 22, 2017 at 11:19 AM, Frank Rueter | OHUfx
> <frank at ohufx.com <mailto:frank at ohufx.com>> wrote:
>
> quick follow up:
> I am now writing the files to a temp directory and only
> passing the respective path via the signal, but I'm still
> curious how I would do this without writing anything to disk.
>
> Cheers,
> frank
>
> On 10/22/2017 09:18 PM, Frank Rueter | OHUfx wrote:
>
> Hi,
>
> I am downloading a few images in a separate thread using
> QRunnable.
> To download I am just using urllib2.urlopen() like this:
>
> [...]
> def run(self):
> imageData = urllib2.urlopen(self.url).read()
> print 'emitted:', imageData
> self.signals.receivedData.emit(imageData) # this signal is
> declared like this: QtCore.Signal(str)
>
>
> However, the receiving slot is receiving nothing:
>
> def setPixmap(self, imageData):
> print 'received:', imageData
> pixmap = QtGui.QPixmap()
> pixmap.loadFromData(imageData)
> self.data['pixmap'] = pixmap
>
>
> I guess this is too naive an approach to download image
> data in a separate thread?!
>
> How can I fix this please?
>
> Cheers,
> frank
>
> --
>
> ohufxLogo 50x50 <http://www.ohufx.com>
>
>
>
> *vfx compositing
> <http://ohufx.com/index.php/vfx-compositing> | workflow
> customisation and consulting
> <http://ohufx.com/index.php/vfx-customising> *
>
>
>
> _______________________________________________
>
> PySide mailing list
>
> PySide at qt-project.org <mailto:PySide at qt-project.org>
>
> http://lists.qt-project.org/mailman/listinfo/pyside
>
>
> _______________________________________________
> PySide mailing list
> PySide at qt-project.org <mailto:PySide at qt-project.org>
> http://lists.qt-project.org/mailman/listinfo/pyside
>
>
>
> --
>
> *
> **ERIK JOHANSSON*
> Pipeline TD
>
> *GOODBYE KANSAS STUDIOS*
> Rosenlundsgatan 40, 4th floor
> 118 53 Stockholm, Sweden
>
> Ph: +46 8 556 990 00 <tel:+46855699000>
> www.goodbyekansas.com <http://www.goodbyekansas.com>
>
>
>
>
> _______________________________________________
>
> PySide mailing list
>
> PySide at qt-project.org <mailto:PySide at qt-project.org>
>
> http://lists.qt-project.org/mailman/listinfo/pyside
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20171023/4aa54de7/attachment.html>
More information about the PySide
mailing list