[PyKDE] KDE app template: Qt signal problem...

Simon Edwards simon at simonzone.com
Thu Apr 28 20:32:25 BST 2005


On Thursday 28 April 2005 09:57, Jim Bublitz wrote:
> examples/example_dcopexport.py is one way to do that. You should be able to 
> export anything using a subclass of DCOPExObj (which is a subclass of 
DCOPObj 
> defined in the dcopexport module) to define the exported methods - they just 
> have to be reachable from the subclass and could even be plain old Python 
> functions not part of any class.

Yeah, I've had a look at that. It is pretty close to what I'm after, although 
it means that you have to forward the methods in the DCOP subclass over to 
the real object that should handle them. Another issue is that C++ still 
needs a header file containing the DCOP interface. It would be nice if that 
could be automatically generated by setup.py.

I'm thinking of something like this:

--------
from DCOPInterface import *
class TestAppIface(DCOPInterface):
    def __init__(self, implementation, id="Value"):
        DCOPInterface.__init__(self, implementation, id)
        self.addMethod("void openURL(QString url)")
--------

Where 'implementation' is the real object that is publishing the interface. A 
request to openURL() would automatically be sent to implementation.openURL(), 
no mess no fuss. DCOPInterface would also have a getCppHeader() method that 
would generate the header file for the interface. setup.py would then just 
create an instance of TestAppIface and use getCppHeader().

With Python 2.4 decorators you could probably come up with something even more 
snazzy.

cheers,

-- 
Simon Edwards             | Guarddog Firewall
simon at simonzone.com       | http://www.simonzone.com/software/
Nijmegen, The Netherlands | "ZooTV? You made the right choice."




More information about the PyQt mailing list