[PyQt] Slot connections fail with newest snapshot

Florian Bruhin me at the-compiler.org
Thu Jul 21 16:08:03 BST 2016


* Phil Thompson <phil at riverbankcomputing.com> [2016-07-21 15:27:13 +0100]:
> On 21 Jul 2016, at 3:05 pm, Florian Bruhin <me at the-compiler.org> wrote:
> > 
> > * Phil Thompson <phil at riverbankcomputing.com> [2016-07-21 15:03:21 +0100]:
> >> On 21 Jul 2016, at 1:51 pm, Florian Bruhin <me at the-compiler.org> wrote:
> >>> 
> >>> * Phil Thompson <phil at riverbankcomputing.com> [2016-07-17 12:57:24 +0100]:
> >>>>>> The current behaviour is different, but what are you expecting to
> >>>>>> happen (given your class does not inherit from QObject)?
> >>>>> 
> >>>>> Oh, @pyqtSlot only works on classes inheriting from QObject? While
> >>>>> that makes some sense, that's news for me!
> >>>>> 
> >>>>> I think either it should just be ignored (like before?), or show some
> >>>>> useful error message like "pyqtSlot can only be used on classes
> >>>>> inheriting from QObject" or so. I also think this should be pointed
> >>>>> out in the docs for @pyqtSlot - while the examples do inherit from
> >>>>> QObject, it's not explicitly documented anywhere I think.
> >>>> 
> >>>> You can use it in classes that are used as mixins with QObject derived classes.
> >>> 
> >>> Hmm, I see.
> >>> 
> >>> So for normal classes which are not QObject subclasses, @pyqtSlot was
> >>> simply ignored so far?
> >> 
> >> Yes.
> >> 
> >>> What about using @pyqtSlot on free functions (rather than methods)?
> >>> It seems that still works fine with the current snapshot - is that
> >>> ignored as well?
> >> 
> >> Yes.
> > 
> > Will this stay that way, or will there be a warning/error added for
> > that as well?
> 
> The only error is when you try and make an invalid connection. PyQt can't tell now a decorated function or method is going to be used so it shouldn't assume somebody hasn't found a valid use case.

I still don't quite follow, sorry - what's invalid about the
connection in my original example[1] other than I'm using @pyqtSlot on
a non-QObject?

And how is that different to connecting to a function with @pyqtSlot,
i.e. why is that still "valid" while the above is invalid with
PyQt 5.7?

[1] https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20160714/01415ee1/attachment-0001.py

Florian

-- 
http://www.the-compiler.org | me at the-compiler.org (Mail/XMPP)
   GPG: 916E B0C8 FD55 A072 | http://the-compiler.org/pubkey.asc
         I love long mails! | http://email.is-not-s.ms/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20160721/4a7b4d37/attachment.sig>


More information about the PyQt mailing list