[PyKDE] Re: "sender" info in Python slot
Andreas Pakulat
apaku at gmx.de
Sat Nov 11 10:14:53 GMT 2006
On 11.11.06 09:35:00, Sibylle Koczian wrote:
> Jeremy Sanders wrote:
> >
> > On Thu, 9 Nov 2006, Andreas Pakulat wrote:
> >
> > > On 09.11.06 16:43:00, Sibylle Koczian wrote:
> > >> hopefully the subject line isn't too misleading. This is my problem: I
> > >> would like to connect the "clicked" signal of several buttons to one
> > >> and the same function - but this function should know which button sent
> > >> the signal. Example: one button to increase a value, another to
> > >> decrease it, and one single function which adds '+1' or '-1' depending
> > >> on the sending button. Or a row of buttons with a letter, and clicking
> > >> one searches for all words beginning with this letter in a list.
> > >>
> > >> How can I do this? Subclassing QPushButton seems to be a possibility,
> > >> but is there a simpler way?
> > >
> > > The unclean solution would be to use the sender() function, the proper
> > > one is to have a look at QSignalMapper.
> >
>
> Why unclean (I didn't look yet at the sender() function)?
Then look at the docs. There's a big fat Warning that using sender
violates OO-principles and the signal/slot mechanim. There are quite
some restrictions on sender() which you always have to have in the back
of you head.
> Still trying to get a simple QSignalMapper example to run. In the PyQt4 examples it is used only in mdi.py which isn't exactly simple, right?
Actually I think it is a simple example, you do look at the python
version do you? I guess best idea would be to strip it down to only
include the open and the open-recent-files stuff and remove everything
else. That should make it as simple as it can get.
Andreas
--
A visit to a strange place will bring fresh work.
More information about the PyQt
mailing list