[PyQt] Old vs New Signals
jfloyd at bigpond.net.au
Sun Jul 8 08:43:55 BST 2012
Note Corrected Subject (was New vs New ... sorry)
I have 2 cases where I am having difficulties in PyQwt signals. Since my
original post I have investiagted the PyQwt code a bit closer and the
following comes from that. The previous discussions helped me in looking
further into the problem.
1) a c++ typedef variable appears to cause problems
The old style signal works
self.picker.connect(picker,SIGNAL('selected(const QwtPolygon &)')
however the new style signal does not work.
NameError: global name 'QwtPolygon' is not defined
Yet the MetaObject lists the following as a signal signature
The reasoning appears to be that in the c++ code QwtPolygon is typedef'ed from
QPolygon. Shouldnt this be handled?
2) Problems with template argument the signal definition. For example
SIGNAL('selected(const QwtArray<QwtDoublePoint>&)'), self.slot)
returns an error
TypeError: C++ type 'QwtArray<QwtDoublePoint>' is not supported as a slot
The signature is listed in the GmetaObject.
In the sip code QwtArray<QwtDoublePoint> is MappedTyped as
QwtArrayQwtDoublePoint - using this as the signature as below returns yet
SIGNAL('selected(const QwtArrayQwtDoublePoint&)'), self.slot)
and also as a new signal
TypeError: connect() failed between selected(QwtArrayQwtDoublePoint) and
Phil Thompson has said that in this case the python code should accept the c++
signature but it does not.
Intriquingly the definition of QwtArray is also a c++ typedef in the Qwt code.
The trouble is that for this particlar picker class, the selected signal is
overloaded multiple times so the signatures are necessary.
Any further help is appreciated.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the PyQt