[PyQt] problem with abstract classes
rasky at develer.com
Tue Aug 14 14:24:59 BST 2007
On 14/08/2007 9.47, Diez B. Roggisch wrote:
> Essentially all I try to do is to create a interface in C++
> (IEventReceiver), a subclass (PyIEventReceiver) to overload the pure
> virtual methods of the base-interface so it can be overloaded in python
> and a test-class that invokes the OnEvent-method in a previously set
> IEventReceiver implementation.
You don't need PyIEventReceiver at all. You can directly subclass
IEventReceiver, if that's what you want to achieve.
/Abstract/ is meant to force SIP *NOT* to allow instantiations of the class.
That's not what you want.
> Then in the python-test-script, I try and instantiate the test-object,
> and subclass the PyIEventReceiver. The latter is the problem. When
> passing that into the test-object and invoke the test-method, I don't
> get the overloaded method invoked.
You didn't define them as "virtual" in the sip file... what did you expect? :)
Define them as "virtual" (and even add the "= 0" where appropriate) and you
will get the right behaviour.
More information about the PyQt