On Thursday 24 January 2008, Andy Davidoff wrote:
> On Jan 24, 2008, at 5:27 AM, Phil Thompson wrote:
> > The design guarantees no future compatibility problems. What do you
> > mean
> > by "could create/hide bugs"?
> >
> >> Although I don't use an IDE or code completion, I would still
> >> prefer a
> >> more explicit type string over an implicit one.  I'd rather the code
> >> was more legible and I believe it could even help the developer catch
> >> type errors earlier, especially when working with someone else's
> >> code.
>
> It's not explicitly clear where the error is in the code below, or
> even if there is an error, since I have no idea which type list is the
> default...
>
>       def slot(combovalue):
>               if somedict.has_key(combovalue):
>                       print "You selected the value", combovalue
>               else:
>                       print "Validation error!"
>
>       q = QComboBox()
>       q.currentIndexChanged.connect(slot)

You find out the same way you found out that there was a currentIndexChanged() 
signal in the first place - the docs.

> > Of the overloaded signals, none of the overloads are obvious
> > candidates for
> > being the default - so in those cases there would be no default and
> > the long
> > form would have to be used. In fact the only use of the "default"
> > flag would
> > probably be to preserve backwards compatibility in the event of a
> > later
> > version of Qt introducing a new overload.
>
> Which of the overloaded currentIndexChanged, activated, or highlighted
> signals on QComboBox, for example, are obviously not candidates for
> being the default?

They are all candidates for being the default, that's my point. There is no 
outstanding candidate.

> Honestly, the fact that the default is not guaranteed to always be
> usable sounds worse.
>
> Will there be any way to discover the default and/or exposed signals
> via reflection?

The following, slightly strange, code would work...

    for s in QComboBox.currentIndexChanged:
        if s is QComboBox.currentIndexChanged:
            print s, "is the default"

Phil
_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to