Re: Non-Modal Dialog

Dennis Jensen <[email protected]>
Newsgroups gmane.comp.python.pyqt-pykde
Message-ID <[email protected]>
I may be wrong but did you all miss the comment where I state you cannot 
use a QWidgets based object within anything but the Main Thread this 
includes almost all the Window like objects including QDialog -- PyQt 
comes right out and says this -- not that is not sub-Thread safe -- but 
that it is not even sub-Thread possible

On 10/8/2019 11:18 AM, Chuck Rhode wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On Tue, 8 Oct 2019 06:13:09 +0200
> Maurizio Berti <[email protected]> wrote:
>
>> <snip> The issue with QPixmap.save() comes from the fact that, being
>> it's not thread safe, it would lock the main loop.  <snip> I think
>> that a good way to find out if it is is to check if the GUI actually
>> responds after the QThread.sleep. <snip> In my tests, using
>> QPixmap.save it didn't. <snip>
> The GUI doesn't respond in mine either, so I think we've established
> that I/O of the kind I've demonstrated WILL LOCK the GUI under the
> best of circumstances, and there isn't a good way to put a thread-safe
> wrapper around an unsafe task.  All the more reason to clue the user
> in as to the reason for the wait. ... so the $64 thousand question is,
> "Except for the clumsiness of the modal dialog box, might this
> thread-unsafe code not just as well be run directly from the GUI
> itself?"
>
> Thanks for sticking with me on this, BTW.
>
> I don't want to make too much of the QPixmap example.  There're
> general-case long-running tasks.  I don't feel I always have
> thread-safe alternatives for the things I want to fire off from a GUI
> environment.
>
> ... and this isn't for commercial consumption.  This is for my own
> fell purposes, so I just have to live with the consequences of a
> cobbled-up job.
>
> Getting the QMessageBox up and letting it settle before starting the
> long-running task is the hard part.  It's baffling that QMessageBox
> and its ancestors don't emit a "donePainting" signal.  It really does
> look as though you just have to wait "long enough."
>
>> When I'm asking out for help, I usually spend a *lot* of time making
>> my code as much as "standard" as possible: It's something that can
>> take a *long* time to be achieved. <snip> I've seen plenty of
>> "custom-styled-code" in both questions and answers that people would
>> just ignore because they were just too hard to read.  <snip>
> ... must ... control .. fIsT oF dEaTh!
>
> WRT excess *returns*, I should point out that *emacs* (Yes, I know
> other code editors do, too.) highlights them along with other
> syntactical sugar.  When you're dittoing code back and forth, it's
> easy to *cut* when you should *copy* and remove code that should be
> left in place.  Not seeing the highlighted *return* where you expect
> it to be, raises the notion that the function you're looking at may no
> longer be complete.  For the same reason, I like to see a shebang at
> the top and a #Fin comment at the bottom of every module because you
> never know when you or someone else will inadvertently shuffle a card
> deck.
>
> I spend a lot of time prettifying my code as though I might have to
> show it to someone someday, but really I'm doing it so I myself have a
> prayer of understanding it after putting it away for a year or two or
> ten.  Python's indentation discipline helps. ... and, yes, I've had
> cow-orkers obfuscate code (not Python) seemingly on purpose and then
> come to me for help debugging it.  That's were the fIsT oF dEaTh comes
> in.
>
> - -- 
> .. Be Seeing You,
> .. Chuck Rhode, Sheboygan, WI, USA
> .. Weather:  http://LacusVeris.com/WX
> .. 58° — Wind S 8 mph
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
>
> iEYEARECAAYFAl2ctu4ACgkQYNv8YqSjllLHgwCeMDUa1WzU3c/7hTVuEkWMJMVy
> GC4AnRm+HzG3SFAr3mjUJi5pkT3tQj00
> =FavB
> -----END PGP SIGNATURE-----
> _______________________________________________
> PyQt mailing list    [email protected]
> https://www.riverbankcomputing.com/mailman/listinfo/pyqt
_______________________________________________
PyQt mailing list    [email protected]
https://www.riverbankcomputing.com/mailman/listinfo/pyqt
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.